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
ponneri navadeepponneri navadeep 

I want test class for this batch class

global class Core_IPS_Entitlement_For_Migrated_Cases implements Database.Batchable<sObject>{

        global Core_IPS_Entitlement_For_Migrated_Cases(){
                   // Batch Constructor
                   
                    
        }
       
        // Start Method
        global Database.QueryLocator start(Database.BatchableContext BC){
        return Database.getQueryLocator([Select id,status,Core_Next_Response_Due_Date__c,BusinessHoursId,AccountId,SlaStartDate,Core_First_Response_Completed__c,SlaExitDate,ContactId,EntitlementID,Core_IPS_Legacy_IPS_ID__c,Core_IPS_GEC_Flag__c from Case where status='Open' And Core_IPS_GEC_Flag__c = false AND Core_IPS_Legacy_IPS_ID__c != Null and recordType.name='IPS Case Create' AND Core_IPS_GEC_Case__c =false Limit 2]);
        //return Database.getQueryLocator([Select id,status,Core_Next_Response_Due_Date__c,BusinessHoursId,AccountId,SlaStartDate,Core_First_Response_Completed__c,SlaExitDate,ContactId,EntitlementID,Core_IPS_Legacy_IPS_ID__c,Core_IPS_GEC_Flag__c from Case where id='50021000000gVKH']);

        }
      
      // Execute Logic
       global void execute(Database.BatchableContext BC, List<sObject>scope){
              // Logic to be Executed batch wise    
             /*List<case> LstCase =  new List<case>();
            for(sobject s : scope){
            Case c = (case)s;
            system.debug(c);
            LstCase.add(c); 
            }*/
            Core_IPS_CaseTriggerHandler.assignEntitlementToCase(scope);
            //complteActiveMilstone 
            
            //update scope;
            
            for(sobject s : scope){
                Case cs = (case)s;
                if(!cs.Core_First_Response_Completed__c) cs.Core_First_Response_Completed__c=true;
                cs.Core_Next_Response_Due_Date__c = system.now() + 7;
             }
            update scope;
            
            Map<Id,List<CaseMilestone>> CaseMilestoneByCaseId = milestoneUtils.getActiveMileStone(scope);
            List<CaseMilestone> LstCaseMilestoneToUpdate = new List<CaseMilestone>();
            for(sobject s : scope){
            Case cs = (case)s;
            
            //if (milestoneUtils.isCaseMilestoneUpdateRequired(cs, system.now())){
                //cs.Core_Trigger_Next_Response__c=true;
                /*if(!cs.Core_First_Response_Completed__c) milestoneUtils.completeMilestone(cs, mtFst.name, completionDate);
                else milestoneUtils.completeMilestone(cs, mtNxt.name, completionDate);*/
                List<CaseMileStone> milestoneList = CaseMilestoneByCaseId.get(cs.id);
                if(milestoneList !=null)
                {
                if(milestoneList.size()>1){
                }else{
                
                    milestoneList[0].completionDate = system.now() ;
                    LstCaseMilestoneToUpdate.add(milestoneList[0]);
                    //System.debug('Complete DATE : ' + completionDate );
                    //update milestoneList[0];
                }
              }
            //LstCase.add(c); 
            //}
            }
            if(LstCaseMilestoneToUpdate.size() > 0)
            {
                update LstCaseMilestoneToUpdate;
            }
            
            
        }
     
       global void finish(Database.BatchableContext BC){
            // Logic to be Executed at finish
       }
    }

 
sandeep@Salesforcesandeep@Salesforce
Here I can only give you idea of writing test class for batch class with one sample code:
@isTest
private class TestBatchClass {

    static testmethod void test() {
        // The query used by the batch job.
        String query = 'Select id,status,Core_Next_Response_Due_Date__c,BusinessHoursId,AccountId,SlaStartDate,Core_First_Response_Completed__c,SlaExitDate,ContactId,EntitlementID,Core_IPS_Legacy_IPS_ID__c,Core_IPS_GEC_Flag__c from Case'; // and also add where clause

       // Create some test merchandise items to be deleted
       //   by the batch job.
       Case[] CaseList = new List<Case>();
       for (Integer i=0;i<10;i++) {
           Case c = new case (
               Name='Case ' + i
               );
           CaseList.add(c);
       }
       insert CaseList;

       Test.startTest();
       Core_IPS_Entitlement_For_Migrated_Cases c = new Core_IPS_Entitlement_For_Migrated_Cases(query);
       Database.executeBatch(c);
       Test.stopTest();

      // Implement some assert statements
    }
}

Thanks
Sandeep Singhal
http://www.codespokes.com/
ponneri navadeepponneri navadeep
how can i cover this lines of code in test class

List<CaseMileStone> milestoneList = CaseMilestoneByCaseId.get(cs.id);
                if(milestoneList !=null)
                {
                if(milestoneList.size()>1){
                }else{
                
                    milestoneList[0].completionDate = system.now() ;
                    LstCaseMilestoneToUpdate.add(milestoneList[0]);
                       }