You need to sign in to do that
Don't have an account?
Snehal 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; } }
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.