You need to sign in to do that
Don't have an account?
Andreea T
Please help me with creation of a test class
Hello friends,
Please help me to write a test class for this class
Please help me to write a test class for this class
public class TriggerTaskUpdateLastNextTask implements Triggers.Handler { public void handle(){ Map <id,List <Task>> mapAcc = new Map <id,List <Task>> (); Map <id,List <Task>> mapLead = new Map <id,List <Task>> (); List <Account> AtoUpdate = new List <Account>(); List <Account> TasktoAccUpdate = new List <Account>(); List <Lead> LtoUpdate = new List <Lead> (); Map<id,Account> accounts = new Map<id,Account>(); Map <id,Task> mapTasks = new Map <id,Task> (); for(Task T: (List <Task>) Trigger.new) { if(T.whoid != NULL && ((string)T.whoid).startswith('00Q')) mapLead.put(T.whoid,new List <Task> {T}); if(T.whatid!= NULL && ((string)T.whatid).startswith('001')) mapAcc.put(T.whatid,new List <Task> {T}); if(T.whatid!= NULL && ((string)T.whatid).startswith('006')) mapAcc.put(T.whatid,new List <Task> {T}); } Map <id,Account> mapAccounts = new Map <id,Account> (); Map <id,Account> mapAccTaskCompleted = new Map <id,Account> (); Map <id,Lead> mapLeads = new Map <id,Lead> (); for(Account A :[SELECT id,True_last_activity__c,Next_Activity_Date__c FROM Account WHERE id in: mapAcc.keySet()]) { mapAccounts.put(A.id,A); } for(Account Acc :[SELECT id,True_last_activity__c,(select id,activitydate from tasks where status = 'Completed' and activitydate != null order by activitydate desc limit 1) FROM Account WHERE id in: mapAcc.keySet()]) { mapAccTaskCompleted.put(Acc.id,Acc); } for(account acct:mapAccTaskCompleted.values()){ List <Task> auxT = mapAcc.get(Acct.id); if(auxT == NULL) auxT = new List <Task> (); for(Task Ts: auxT) { if(Ts.ActivityDate !=null && Ts.Status=='Completed') acct.True_last_activity__c = acct.tasks[0].activitydate; } TasktoAccUpdate.add(Acct); } for(Lead L : [SELECT id,True_last_activity__c,Next_Activity_Date__c,Last_Sales_interaction__C FROM Lead WHERE id in: maplead.keySet()]) { mapLeads.put(L.id,L); } for(Account A: MapAccounts.values()) { List <Task> auxT = mapAcc.get(A.id); if(auxT == NULL) auxT = new List <Task> (); for(Task T: auxT) { if(T.ActivityDate > System.Now() && (A.Next_Activity_date__C == NULL || T.activityDate < A.Next_Activity_date__c)) A.Next_Activity_date__c = T.ActivityDate; } Atoupdate.add(A); } for(Lead L: MapLeads.values()) { List <Task> auxT = mapLead.get(L.id); if(auxT == NULL) auxT = new List <Task> (); for(Task T: auxT) { if(T.ActivityDate > System.Now() && (L.Next_Activity_date__C == NULL || T.activityDate < L.Next_Activity_date__c)) { L.Next_Activity_date__c = T.ActivityDate; } else if(T.ActivityDate < System.now() && (L.True_last_activity__c == NULL|| T.activityDate > L.True_Last_Activity__c)) { L.True_Last_Activity__c = T.ActivityDate; L.Last_Sales_interaction__C = T.Type; } } Ltoupdate.add(L); } update Atoupdate; update TasktoAccUpdate; update Ltoupdate; } }