How to cover Inner class in Test class for code coverage in Salesforce?

How to cover Inner class in Test class for code coverage in Salesforce?

Sample Code:

Apex Class:

public class EmployeeController {
    public static void assignSequence(List<Employee__c> listEmployee, Decimal startNum) {
        Decimal initial = startNum;
        List<EmployeeWrapper> listEmployeeWrapper = new List<EmployeeWrapper>();
        
        for(Employee__c emp : listEmployee) {
            listEmployeeWrapper.add(new EmployeeWrapper(emp));
        }
        
        listEmployeeWrapper.sort();
        listEmployee.clear();
        
        for(EmployeeWrapper empW : listEmployeeWrapper) {
            listEmployee.add(empW.dirPagination);
        } 

        for(Employee__c emp : listEmployee) {                   
            emp.Sequence_in_Section__c = initial;
            initial = initial + 10;
        }        
                
        update listEmployee;
    }
    
    public class EmployeeWrapper implements Comparable {

        public Employee__c emp = new Employee__c();
        
        // Constructor
        public EmployeeWrapper(Employee__c empRecord) {
            emp = empRecord;
        }
        
        // Compare emp based on the Employee__c Age__c.
        public Integer compareTo(Object compareTo) {
            // Cast argument to EmployeeWrapper
            EmployeeWrapper compareToEmp = (EmployeeWrapper)compareTo;
            
            // The return value of 0 indicates that both elements are equal.
            Integer returnValue = 0;
            if (emp.Age__c > compareToEmp.emp.Age__c) {
                // Set return value to a positive value.
                returnValue = 1;
            } else if (emp.Directory_Heading__c < compareToEmp.emp.Age__c) {
                // Set return value to a negative value.
                returnValue = -1;
            }
            
            return returnValue;       
        }
    }
}

Test Class:

private class EmployeeControllerTest {
    static testMethod void empTest() {
        Employee__c emp = new Employee__c(Name = 'Test', Age__c = 12);
        EmployeeController.EmployeeWrapper empW = new EmployeeController.EmployeeWrapper(emp);  //Covering inner/wrapper class
        empW.compareTo(empW);  
//Covering compareTo()
    }  
}

Leave a Reply