You need to sign in to do that
Don't have an account?
Lakshmi S
How to write test class for After delete & update triggers?
Hi Team,
After delete & update code not covered in trigger. please give me any idea about this requirement.
Trigger:
----------
-----------------
Regards
Lakshmi
After delete & update code not covered in trigger. please give me any idea about this requirement.
Trigger:
----------
trigger FinancialsCountTrigger on Financials__c (after insert, after update, after delete, after undelete) { if(checkRecursive.runOnce()){ List<Account> updateAcc = new List<Account>(); Set<Id> accid = new Set<Id>(); Decimal totalRevenue; Decimal totalEBITDA; if(Trigger.isAfter && (Trigger.isInsert || Trigger.isUpdate || Trigger.isUndelete)){ for(Financials__c fin : Trigger.New){ if(fin.AccountName__c != null){ accid.add(fin.AccountName__c); } } } if(Trigger.isAfter && (Trigger.isUpdate || Trigger.isDelete)){ for(Financials__c fin : Trigger.Old){ if(fin.AccountName__c != null){ accid.add(fin.AccountName__c); //system.debug('-----'+accid); } } } if(accid.size() > 0){ List<Account> acclist = [select id,Name,Global_Revenue_Total__c,Global_EBITDA_B4_Total__c, (select id,Global_Revenue_Total__c,Global_EBITDA_B4_Total__c from Financial__r) from Account where id in :accid]; for(Account acc : acclist){ List<AggregateResult> aggres = [Select sum(Global_Revenue_Total__c)revtot,sum(Global_EBITDA_B4_Total__c)ebitdatot from Financials__c where AccountName__c=:acc.id and Year__c='FY-2017']; for(AggregateResult ag : aggres){ totalRevenue = (Decimal)ag.get('revtot'); totalEBITDA = (Decimal)ag.get('ebitdatot'); } acc.Global_Revenue_Total__c = totalRevenue; acc.Global_EBITDA_B4_Total__c = totalEBITDA; updateAcc.add(acc); } } update updateAcc; } }Test Class
-----------------
@isTest public class TestFinancialsCountTrigger { public static testMethod void financialCount(){ Account acc = new Account(Name='3M Corporation',Industry='Conglomerate'); insert acc; Account acc2 = new Account(Name='3M Corporation2',Industry='Conglomerate'); insert acc2; Financials__c fin = new Financials__c(AccountName__c=acc.id,Name='Test',Year__c='FY-2017',Global_Revenue_Total__c=100,Global_EBITDA_Total__c=200); insert fin; Financials__c fin2 = new Financials__c(AccountName__c=acc2.id,Name='Test2',Year__c='FY-2017',Global_Revenue_Total__c=500,Global_EBITDA_Total__c=400); insert fin2; fin.Global_Revenue_Total__c = 500; update fin; delete fin; Test.startTest(); List<Financials__c> finlist = [select id from Financials__c where AccountName__c = :acc.Id and Year__c='FY-2017']; delete finlist; Test.stopTest(); } }Please give me reply any one......
Regards
Lakshmi
For after delete:
You can check that you receive the exception as expected. E.g.
Thanks
Vinod
Thanks for your reply.
it's not working.
try to put System.assert() in test methods.
In trigger change follwoing line Trigger.isAfter && (Trigger.isUpdate || Trigger.isDelete)
to Trigger.isAfter && Trigger.isDelete)
.
And try once.
Hope this helps you!
Thanks
Varaprasad
@For Support: varaprasad4sfdc@gmail.com
Thanks for your reply.
It's not working, it covered only 88% of code coverage.
I want to 100% code coverage.