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
Dastagiri BashaDastagiri Basha 

Hello All, I need to write test class for the below code. Can any one help me

List<Employee__c> empList;
        AggregateResult[] atteList;
        AggregateResult[] LeaveList;
        if(empIds.size() >0){
            empList = [SELECT Id,Name,Basic_Salary__c,Employee_ID__c FROM Employee__c WHERE Not (Id IN :empIds)];
            atteList  = [SELECT Count(Id)cnt,Employee__c FROM Attendance__c WHERE Month_and_year__c=:monthYear AND (NOT (Employee__c IN : empIds))  GROUP BY Employee__c];
            LeaveList  = [SELECT SUM(No_of_Days__c)noL,Employee__c FROM Leave__c WHERE Month_and_year__c=:monthYear AND (NOT (Employee__c IN : empIds)) AND (Approval_Status__c ='Accept' OR Approval_Status__c ='Edit & Accept')  GROUP BY Employee__c];
        }
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Dastagiri,

The below Test class is giving 90% coverage. Please let me know if you need any further help.
 
@isTest
public class employeeDateSearchTest {
   public static testMethod void getEmployeeDataTest(){
        Test.startTest();
        Employee__c emp = new Employee__c();
  		emp.name = 'test';
       emp.Basic_Salary__c=1244;
       emp.Employee_ID__c='123355'; 
   insert emp;
   
  
  Attendance__c attd = new Attendance__c();
  attd.name = 'test';
  attd.Employee__c = emp.id;
       attd.Month_and_year__c='system.today()';
        insert attd;
       Leave__c lev= new Leave__c();
       lev.name='test';
       lev.Month_and_year__c='system.today()';
       lev.Employee__c=emp.id;
       lev.Approval_Status__c='Accept';
       insert lev;
 
        Set<Id> empIds = new Set<Id>();
        List<Employee_Payroll__c> UpPayroll = new List<Employee_Payroll__c>();
        Employee_Payroll__c empPayroll = new Employee_Payroll__c();
        empPayroll.Name__c = emp.id;        
        empPayroll.Basic_Salary__c = 2000;
        empPayroll.Ot__c = 2;
        empPayroll.Attendence__c = 23;
        empPayroll.Sick_Leave__c = 2;
        empPayroll.Advance__c = 200;
        empPayroll.Visa__c = 250;
        empPayroll.Iqama__c = 300;
        empPayroll.Insurance__c = 100;
        empPayroll.Ticket__c = 200;
        empPayroll.Holidays__c =4;
        empPayroll.Allowances__c=400;
        empPayroll.Others__c= 200;
        empIds.add(empPayroll.Name__c);
        //empPayroll.Month_and_year__c='' ;
        UpPayroll.add(empPayroll);
        insert UpPayroll;              
        employeeDateSearch.getEmployeeData('system.today');
        test.stopTest();
    }
     public static testMethod void getEmployeeDataTest2(){
        Test.startTest();
        Employee__c emp = new Employee__c();
  		emp.name = 'test';
       emp.Basic_Salary__c=1244;
       emp.Employee_ID__c='123355'; 
   insert emp;
   
  
  Attendance__c attd = new Attendance__c();
  attd.name = 'test';
  attd.Employee__c = emp.id;
       attd.Month_and_year__c='system.today()';
        insert attd;
       Leave__c lev= new Leave__c();
       lev.name='test';
       lev.Month_and_year__c='system.today()';
       lev.Employee__c=emp.id;
       lev.Approval_Status__c='Accept';
       insert lev;
 
        Set<Id> empIds = new Set<Id>();
        List<Employee_Payroll__c> UpPayroll = new List<Employee_Payroll__c>();
        Employee_Payroll__c empPayroll = new Employee_Payroll__c();
        empPayroll.Name__c = emp.id;        
        empPayroll.Basic_Salary__c = 2000;
        empPayroll.Ot__c = 2;
        empPayroll.Attendence__c = 23;
        empPayroll.Sick_Leave__c = 2;
        empPayroll.Advance__c = 200;
        empPayroll.Visa__c = 250;
        empPayroll.Iqama__c = 300;
        empPayroll.Insurance__c = 100;
        empPayroll.Ticket__c = 200;
        empPayroll.Holidays__c =4;
        empPayroll.Allowances__c=400;
        empPayroll.Others__c= 200;
        empIds.add(empPayroll.Name__c);
        empPayroll.Month_and_year__c='system.today' ;
        UpPayroll.add(empPayroll);
        insert UpPayroll;              
        employeeDateSearch.getEmployeeData('system.today');
        test.stopTest();
    }
    
    
    public static testMethod void  SavePayrollTest(){  
        test.startTest();
          Employee__c emp = new Employee__c();
  		emp.name = 'test';
       emp.Basic_Salary__c=1244;
       emp.Employee_ID__c='123355'; 
   insert emp;
        List<Employee_Payroll__c> updList = new List<Employee_Payroll__c>();
        Employee_Payroll__c emproll = new Employee_Payroll__c();  
        // emproll.id = empList.id;
        // emproll.Month__c = 'November';
        // emproll.Year__c = '2021';
        emproll.Name__c = emp.id;
        emproll.Basic_Salary__c = 2000;
        emproll.Ot__c = 2;
        emproll.Attendence__c = 23;
        emproll.Sick_Leave__c = 2;
        emproll.Advance__c = 200;
        emproll.Visa__c = 250;
        emproll.Iqama__c = 300;
        emproll.Insurance__c = 100;
        emproll.Ticket__c = 200;       
        updList.add(emproll);  
        upsert updList; 
        
        employeeDateSearch.savePayroll( updList, 'November', '2021');
        test.stopTest();
    }   
    
}

If this solution helps, Please mark it as best answer.

Thanks,