You need to sign in to do that
Don't have an account?
chanti k
How to write a test class to the below trigger ?
Hi ,
in this trigger i have all are number datat tyype fileds.
Cheers!!
in this trigger i have all are number datat tyype fileds.
trigger ParentCaseGBOAge on Case ( after update) { Set<Id> recordIds = new Set<Id>(); Set<Id> parentIds = new Set <Id>(); for (case c : Trigger.new) if( AvoidRecursion.isFirstRun()) { if ( c.RecordTypeId == Schema.Sobjecttype.case.getRecordTypeInfosByName().get('GBOCase').getRecordTypeId() && c.parentid == null && c.status == 'Closed') { parentIds.add(c.id); } } system.debug('@@@@'+ParentIds.size()); if (parentIds.isEmpty() == false) { //List <case> caseparent = [Select id, Parent_BDT_Case_Age__c,Parent_COM_Case_Age__c,Parent_LSR_Case_Age__c, Parent_PDT_Case_Age__c from case where id in :ParentIds ]; Map<ID,Case> ResultMap = new Map <ID,Case> ([Select id, Parent_BDT_Case_Age__c,Parent_COM_Case_Age__c,Parent_LSR_Case_Age__c, Parent_PDT_Case_Age__c from case where id in :ParentIds ]); // Map<ID,Case> ResultMap = new Map <ID,Case> (); AggregateResult[] groupedResults = [select max(ParentID) ParentID, sum(BDT_Case_Age__c)childsum1, sum(COM_Case_Age__c) childsum2, sum(PDT_Case_Age__c) childsum3, sum(LSR_Case_Age__c) childsum4 from case where parentid in :ParentIds or Id in:ParentIds]; for (AggregateResult Ar : groupedResults) { ID resultID = (ID)Ar.get('ParentID'); case cupd = ResultMap.get(resultID); cupd.Parent_BDT_Case_Age__c = (Decimal) Ar.get('childsum1'); cupd.Parent_COM_Case_Age__c = (Decimal) Ar.get('childsum2'); cupd.Parent_PDT_Case_Age__c = (Decimal) Ar.get('childsum3'); cupd.Parent_LSR_Case_Age__c = (Decimal) Ar.get('childsum4'); //Resultmap.remove(resultID); ResultMap.put(resultID,cupd); system.debug('$$$$$$' + ResultMap.values()); system.debug('^^^^'+cupd.Parent_BDT_Case_Age__c); } if(ResultMap.values().size() > 0) { List <Case> CasestobeUpdated = new List <Case>(); for (Case cu : [Select id, Parent_BDT_Case_Age__c,Parent_COM_Case_Age__c,Parent_LSR_Case_Age__c, Parent_PDT_Case_Age__c from case where id in :ResultMap.keySet()] ) { cu.Parent_BDT_Case_Age__c = ResultMap.get(cu.id).Parent_BDT_Case_Age__c; cu.Parent_COM_Case_Age__c = ResultMap.get(cu.id).Parent_COM_Case_Age__c; cu.Parent_PDT_Case_Age__c = ResultMap.get(cu.id).Parent_PDT_Case_Age__c; cu.Parent_LSR_Case_Age__c = ResultMap.get(cu.id).Parent_LSR_Case_Age__c; CasestobeUpdated.add(cu); } update CasestobeUpdated; // upsert ResultMap.values() ID ; // system.debug('$$$$$ '+ResultMap.size()); } } }chnati
Cheers!!
Hi Chanti,
Who is the Parent object for Case object.
Thanks,
Gaurav
You can write your test class for this trigger like this
@isTest
public class ParentCaseGBOAgeTest{
public static testmethod void casemethod(){
Test.startTest();
// Create you record type test record
// Create your case test record with all the field you used in your trigger
// Insert this case
// Then update this case with one field
// Check assert with case id
Test.stopTest();
}
}
Hope this will help you.
Thanks
Ashoka