-
How to create a test class for a controller extension
Case object needs to lookup up the related Opportunity and display the child Opportunity Splits on the case page as a visualforce page component.
Controller Extension:
public class Case_ListOppSplits_Controller {
public Case myCase;
public Case_ListOppSplits_Controller(ApexPages.StandardController stdController){
this.myCase = (Case)stdController.getRecord();
}
//initialise setController and return a list of records
public list<Opportunity_Split__c> getOpportunity_Splits(){
Case currentCase = [SELECT Id, Subject, Opportunity__c FROM Case WHERE Id =: ApexPages.currentPage().getParameters().get(‘id’)];
List<Opportunity_Split__c> OppSplits = [SELECT Id, Name, Opportunity__c, Loan_Purpose__c, Loan_Type__c, Loan_Usage__c, Rate_Type__c, Repayment_Type__c, Split_Loan_Amount__c
FROM Opportunity_Split__c
WHERE Opportunity__c =: currentCase.Opportunity__c];
return OppSplits;
}
}I am lost creating the test class, here is my attempt – 28% code coverage: (won’t compile in current form)
@isTest
public class Case_ListOppSplits_Controller_Test {
static testMethod void testMethod1()
{
Case testCase = new Case();
testCase.Subject=’Test Case’;
testCase.Opportunity__c=’0067F00000N8vSVQAZ’;
testCase.RecordTypeId=’0126D000000qSBcQAM’; //UA
testCase.Status=’Assigned’;
insert testCase;
Test.StartTest();
PageReference pageRef = new PageReference(‘https://omniwealth–dwr.my.salesforce.com/apex/Case_OpportunitySplits?id=’+testCase.Id); //??instantiates the page – doesn’t this run the controller?
ApexPages.StandardController sc = new ApexPages.StandardController(testCase);
Case_ListOppSplits_Controller extn = new Case_ListOppSplits_Controller(sc);
List<Case_ListOppSplits_Controller> listOppSplits = extn.OppSplits; //based on code in example
Test.StopTest();
}
}
Log In to reply.