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
Snehal Gaware 15Snehal Gaware 15 

test class coverage is showing constant is 53 only.

Hi, i need help on test class of below trigger.
trigger CaseTrigger on Case (before insert,before update, after update) 
{
    if((Trigger.isBefore && Trigger.isUpdate)||(Trigger.isBefore && Trigger.isInsert))
    {
        
   List<Id> contactIds = new List<Id>();
   List<Id> acctIds = new List<Id>();
   for (Case c: Trigger.new){
      if (c.EntitlementId == null && c.ContactId!= null && c.AccountId!= null){
         contactIds.add(c.ContactId);
         acctIds.add(c.AccountId);
      }
   }
   if(contactIds.isEmpty()==false || acctIds.isEmpty()==false){
      /* Added check for active entitlement */
      List <EntitlementContact> entlContacts = [Select e.EntitlementId,e.ContactId,e.Entitlement.AssetId From EntitlementContact e
                                                Where e.ContactId in:contactIds
                                                And e.Entitlement.EndDate >= Today And e.Entitlement.StartDate <= Today];
      if(entlContacts.isEmpty()==false){
         for(Case c: Trigger.new){
            if(c.EntitlementId == null && c.ContactId!= null){
               for(EntitlementContact ec:entlContacts){
                  if(ec.ContactId==c.ContactId){
                     c.EntitlementId = ec.EntitlementId;
                     if(c.AssetId==null && ec.Entitlement.AssetId!=null)
                        c.AssetId=ec.Entitlement.AssetId;
                     break;
                  }
               } // end for entitlement
            }
         } // end for case
      } else{
         List <Entitlement> entls = [Select e.StartDate, e.Id, e.EndDate, e.AccountId, e.AssetId
                                     From Entitlement e
                                     Where e.AccountId in:acctIds And e.EndDate >= Today And e.StartDate <= Today];
         if(entls.isEmpty()==false){
            for(Case c: Trigger.new){
               if(c.EntitlementId == null && c.AccountId!= null){
                  for(Entitlement e:entls){
                     if(e.AccountId==c.AccountId){
                        c.EntitlementId = e.Id;
                        if(c.AssetId==null && e.AssetId!=null)
                           c.AssetId=e.AssetId;
                        break;
                     }
                  } // end for
               }
            } // end for
         }
      }
   } // end if(contactIds.isEmpty()==false)
        
    }

   
    if(Trigger.isBefore && Trigger.isUpdate)
    {
        System.debug('entered if condition');
        
        for(Case c : Trigger.new)
        {
            if (c.Assignment_Group__c != trigger.oldMap.get(c.Id).Assignment_Group__c){
            System.debug('Updating logic');
            List<Group> qid = [select Id from Group where Name = : c.Assignment_Group__c and Type = 'Queue'];
              for(Group g : qid)
                {
                    c.OwnerId = g.id;
                    System.debug('updated');
                }
            }}        
    }
    
     if(Trigger.isBefore && Trigger.isUpdate)
    {
      for(Case c : Trigger.new)
        {   
            if(c.Assignment_Group__c=='Tech Support'||c.Assignment_Group__c=='GD-IT'||c.Assignment_Group__c=='App-Support'||c.Assignment_Group__c=='GD-RM'||c.Assignment_Group__c=='GD-DB'||c.Assignment_Group__c=='Dev-Ops'||c.Assignment_Group__c=='App-Management'||c.Assignment_Group__c=='PDT-DS-Engg'||c.Assignment_Group__c=='PDT-US-Engg')
            {
                c.Group_Manager_Email__c = 'sargware@gmail.com'; c.Escalation_Level_2_Email__c ='sargware@gmail.com'; c.Escalation_Level_3_Email__c='sargware@gmail.com';
            }
        }
    }
    
    if(Trigger.isBefore && Trigger.isUpdate)
    {
      for(Case c : Trigger.new)
        {   
            if(c.Internal_Impact__c == 'Low' && c.Internal_Urgency__c=='Low')
            {
                c.Priority='Planning';
            }
            if(c.Internal_Impact__c == 'High' && c.Internal_Urgency__c=='High')
            {
                c.Priority='Critical';
            }
            if(c.Status=='Pending User' || c.Status=='Pending Vendor')
            {
                c.IsStopped = True;
            }
            
        }
        
      }
    
    if((Trigger.isAfter && Trigger.isUpdate))
    {
    Set<Id> Ids = new Set<Id>();
    Set<Id> IdR = new Set<Id>();
    Set<Id> IdC = new Set<Id>();
    List<SC_Problem_Case_Link__c> scprblm = new List<SC_Problem_Case_Link__c>();
    List<SC_Problem_Case_Link__c> scprblmo = new List<SC_Problem_Case_Link__c>();
    List<SC_Problem_Case_Link__c> scprblmc = new List<SC_Problem_Case_Link__c>();
     for (Case cs: Trigger.new)
    {
        Case oldLead = Trigger.oldMap.get(cs.Id);

        if (cs.Status == 'Tested' && Trigger.oldMap.get(oldLead .Id).Status=='Ready for Testing')
        { 
            Ids.add(cs.Id);
        }
        if (cs.Status == 'ReOpen')
        { 
            IdR.add(cs.Id);
        }
        if (cs.Status == 'Closed')
        { 
            IdC.add(cs.Id);
        }
    }

    for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Ready for Testing' AND Case__c in :Ids])
    {
            
        if (rateSheet.Status__c != 'Tested') {
            rateSheet.Status__c = 'Tested';
            //rateSheet.Case__c.Status= 'Awaiting Deployment';
            scprblm.add(rateSheet);
        }
        
    }
    if (!scprblm.isEmpty()) {
        update scprblm;
    }
    
            
   for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Resolved' AND Case__c in :IdR])
    {
    // List<SC_Problem_Case_Link__c> accts = [Select Id, Status__c from SC_Problem_Case_Link__c where Id in : Trigger.old];
        
        if (rateSheet.Status__c != 'Open') {
            rateSheet.Status__c = 'Open';
            scprblmo.add(rateSheet);
        }
        
    }
    if (!scprblmo.isEmpty()) {
        update scprblmo;
    }
    
    
   for (SC_Problem_Case_Link__c rateSheet: [select Id,Status__c from SC_Problem_Case_Link__c where Status__c = 'Resolved' AND Case__c in :IdC])
    {
             
        if (rateSheet.Status__c != 'Closed') {
            rateSheet.Status__c = 'Closed';
            scprblmc.add(rateSheet);
        }
        
    }
    if (!scprblmc.isEmpty()) {
        update scprblmc;
    }
}

 
}
test class :
 
@isTest
public class CaseTrigger_Test {
    @isTest static void caseTriggerTest(){
        Account acc=new Account();
        acc.name = 'Acc Name';
        insert acc;
        
        Contact con= new Contact();
        con.lastname = 'con lName';
        con.AccountId= acc.Id;
        insert con;
        
        Entitlement ent = new Entitlement(Name='test2', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(-10)), EndDate=Date.valueof(System.now().addYears(3)));
        insert ent;
        
        EntitlementContact ec = new EntitlementContact(EntitlementId=ent.Id, ContactId=con.Id);
        insert ec;
        
        case c=new case();
        c.AccountId = acc.Id;
        c.ContactId = con.Id;
        c.Assignment_Group__c = 'Tech Support';
        insert c;
        
        c.Assignment_Group__c = 'GD-DB';
        update c;
    }
    
    @isTest static void caseTriggerTest1(){
        Account acc=new Account();
        acc.name = 'Acc Name';
        insert acc;
        
        Contact con= new Contact();
        con.lastname = 'con lName';
        con.AccountId= acc.Id;
        insert con;
        
        Entitlement ent = new Entitlement(Name='test2', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(-10)), EndDate=Date.valueof(System.now().addYears(3)));
        insert ent;
                
        case c=new case();
        c.AccountId = acc.Id;
        c.ContactId = con.Id;
        insert c;
    }
    
    @isTest static void caseTriggerTest2(){
    Account acc=new Account();
        acc.name = 'Acc Name';
        insert acc;
        
        Contact con= new Contact();
        con.lastname = 'con lName';
        con.AccountId= acc.Id;
        insert con;
        
        Entitlement ent = new Entitlement(Name='test2', AccountId=acc.Id, StartDate=Date.valueof(System.now().addDays(-10)), EndDate=Date.valueof(System.now().addYears(3)));
        insert ent;
                
        case c=new case();
        c.AccountId = acc.Id;
        c.ContactId = con.Id;
        c.Internal_Impact__c = 'Low';
        c.Priority = 'Medium';
        insert c;
        
        SC_Problem_Management__c sc=new SC_Problem_Management__c();
        sc.Products__c= 'AutoClass';
        sc.Impact__c='Critical';
        sc.Urgency__c='Critical';
        sc.Priority__c='Critical';
        insert sc;
        
        SC_Problem_Case_Link__c scpl=new SC_Problem_Case_Link__c();
        scpl.Case__c=c.Id;
        scpl.SC_Problem_Management__c= sc.Id;
        scpl.Status__c='Open';
        insert scpl;
        if(scpl.Status__c!='Resolved'){
            scpl.Status__c='Resolved';}
        update scpl;
        
        c.Priority = 'Planning';
        update c;
    }
}


 
Snehal Gaware 15Snehal Gaware 15
Hi Team,
I have done so many changes in test class  to get coverage more than 90 but it is not exceeding 53%. Please help .

Thanks in advance.