function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Developer.mikie.Apex.StudentDeveloper.mikie.Apex.Student 

Wrapper Class Test - How to get 100%

Hi There,

I am trying to write a test class for my Wrapper Class, unfortunately my overall code coverage pretty much borders around 75%, so I need to get 100% in order to deploy. I Finally just got it to save and pass, after hours of trial and error and it has 80%. Any tips on how to get the remaining 20% would be much appreciated.

Test
@isTest 
private class FinanceCommissionNew_Test{
    static testMethod void FinanceCommissionNew() {
    
    Office__c Office = new Office__c(Name = 'Test Pro Account');
insert Office;
Office_Commission__c OffCom = new Office_Commission__c(Commission_Period_Start__c = date.today(), Office__c = Office.id, Commission_Period_End__c = date.today()+7);
insert OffCom;


       //this call tests the constructor:
       FinanceCommissionNew FinComN = new FinanceCommissionNew();
       
       
        Finance_Commission__c FinCom = new Finance_Commission__c(Office_Name__c = Office.id, Office_Commission__c = OffCom.id, Finance_Commission_Date__c=system.today());
       //test building was complete
        System.assert(FinComN.wrappers.size()==6);
        
        
        //call the pageReference in the class.
        
        FinComN.addRows();
        FinComN.delWrapper();
        FinComN.calculation();
        
        FinComN.saveStandard();
        FinComN.Cancel();



    }
}

Wrapper class
public class FinanceCommissionNew{
    
    public Finance_Commission__c FinCom { get; set; }
   Id OfficeId = ApexPages.currentPage().getParameters().get('OffId'); 
    
    //Wrapper multi add try to implement
     public List<FinComWrapper> wrappers {get; set;}
 public static Integer toDelIdent {get; set;}
 public static Integer addCount {get; set;}
 private Integer nextIdent=1;
 
 public String FinanceCommissionsDate{get;set;}
 
 public void calculation()
{
If(FinCom.id != null){
if(FinCom.Finance_Commission_Date__c!=null){
FinanceCommissionsDate = String.Valueof(FinCom.Finance_Commission_Date__c);
FinanceCommissionsDate = FinanceCommissionsDate.substring(8, 10)+'/'+FinanceCommissionsDate.substring(5, 7)+'/'+FinanceCommissionsDate.substring(0, 4);
}
}

}
  
  
 public void delWrapper()
 {
  Integer toDelPos=-1;
  for (Integer idx=0; idx<wrappers.size(); idx++)
  {
   if (wrappers[idx].ident==toDelIdent)
   {
    toDelPos=idx;
   }
  }
   
  if (-1!=toDelPos)
  {
   wrappers.remove(toDelPos);
  }
 }
 
  
 public void addRows()
 {
  for (Integer idx=0; idx<addCount; idx++)
  {
   wrappers.add(new FinComWrapper(nextIdent++));
  }
 }

  /* Remove for now, as it has been made redunant. keep for reference incase soemthing goes wrong
 public PageReference save()
 {
  List<Finance_Loan_Split__c> FLS =new List<Finance_Loan_Split__c>();
  for (FinLoanSplitWrapper wrap : wrappers)
  {
   FLS.add(wrap.FinLoanS);
  }
   
  insert FLS;
   
  return new PageReference('/' + Schema.getGlobalDescribe().get('Finance_Loan_Split__c').getDescribe().getKeyPrefix() + '/o');
 }
 */
  
 public class FinComWrapper
 {
  public Finance_Commission__c FinCom {get; private set;}
  public Integer ident {get; private set;}
   
  public FinComWrapper(Integer inIdent)
  { 
   ident=inIdent;
   FinCom =new Finance_Commission__c(Finance_Commission_GST_Amount__c=ident);
   Id OfficeId = ApexPages.currentPage().getParameters().get('OffId');
   
If(OfficeId != null){  
FinCom.Office_Name__c = OfficeId;
}
If(ident==1){
FinCom.Finance_Commission_Type__c = 'Upfront';
FinCom.Finance_Commission_Institution__c = 'St George';
}
If(ident==2){
FinCom.Finance_Commission_Type__c = 'Upfront';
FinCom.Finance_Commission_Institution__c = 'AFG';
}
If(ident==3){
FinCom.Finance_Commission_Type__c = 'Upfront';
FinCom.Finance_Commission_Institution__c = 'DMS';
}
If(ident==4){
FinCom.Finance_Commission_Type__c = 'Trail';
FinCom.Finance_Commission_Institution__c = 'St George';
}
If(ident==5){
FinCom.Finance_Commission_Type__c = 'Trail';
FinCom.Finance_Commission_Institution__c = 'AFG';
}
If(ident==6){
FinCom.Finance_Commission_Type__c = 'Trail';
FinCom.Finance_Commission_Institution__c = 'DMS';      
}
   
  }
 }
 

     //Wrapper multi add try to implement   

    
    
    
    

 public FinanceCommissionNew() {
 
 
    FinCom = new Finance_Commission__c();
      If(OfficeId != null){
       
      FinCom.Office_Name__c = OfficeId;
      }
      
    //LoanSecurity = new Finance_Loan_Security__c ();
      wrappers=new List<FinComWrapper>();
  for (Integer idx=0; idx<6; idx++)
  {
   wrappers.add(new FinComWrapper(nextIdent++));
  }
      
    }
    
    
    public PageReference saveStandard() {
    

 List<Finance_Commission__c> FinComs =new List<Finance_Commission__c>();
  for (FinComWrapper wrap : wrappers)
  {
   FinComs.add(wrap.FinCom);
  }
  
    for (Finance_Commission__c FinCommissions: FinComs)
  {
  if(FinCom.Finance_Commission_Date__c!=null){
  
    FinCommissions.Finance_Commission_Date__c = FinCom.Finance_Commission_Date__c;
    
            }
  }            




        try { 
        
        upsert FinComs;
       
       
        PageReference pageRef= new PageReference('/apex/DestinyOffice?id='+OfficeId+'&Sfdc.override=1');
        return pageRef;
        } catch (Exception e) {     
      
             ApexPages.addMessages(e);         
        }
        
        
        
        return null;
    
    }
    
      
    public PageReference Cancel() {
   
        PageReference pageRef= new PageReference('/apex/DestinyAccount?id='+OfficeId+'&Sfdc.override=1');
        return pageRef;
     
    }
    


 
 
    
}

 
pconpcon
I would recommend that you split this into multiple test methods.  I would create a test method for each one of your ident values as well as an explicit test for each one of your methods inside of your class.  You'll end up with a lot of tests, but very little between your Test.startTest() and Test.stopTest() but the small part of the wrapper you are testing. Additionally you'd want to add tests for each of your branches (like Finance_Commission_Date__c being null).