You need to sign in to do that
Don't have an account?
Andreea T
Please help me write test class, I am having only 64% code coverage
I am having one class which I am getting only 64% code coverage. Please help me out. Here is my class:
public class TriggerCalculateNormalizeInInvoiceGroup implements Triggers.Handler { public Set<ID> newEntitiesIds = new Set<ID>(); public Set<ID> oldEntitiesIds = new Set<ID>(); public list<Account> invoicesToUpdate = new list<Account>(); public list<Account> oldInvoicesToUpdate = new list<Account>(); public list<Account> invToUpdate = new list<Account>(); public list<Account> oldInvToUpdate = new list<Account>(); public void Handle(){ storeData(); processData(); saveData(); } private void storeData(){ Map<id,Invoice__c> newInvoices = (Map<ID,Invoice__c>) Trigger.newMap; for(Invoice__c i: newInvoices.Values()){ newEntitiesIds.add(i.Account__c); } if(Trigger.isUpdate){ for(Invoice__c i: (List<Invoice__c>) Trigger.Old){ if(i.Account__c != newInvoices.get(i.id).Account__c){ oldEntitiesIds.add(i.Account__c); } } } } private void processData(){ for(AggregateResult ar: [SELECT SUM(Normalized_Amount__c) NormalizeAmount, Grouping(Account__c), Account__c FROM Invoice__c WHERE Category_Invoice__c != 'Monthly' AND Status__c != 'invoice_canceled' AND Account__c IN: newEntitiesIds GROUP BY Account__c]){ if((ID)ar.get('Account__c') != null){ invoicesToUpdate.add(new Account ( ID = (ID)ar.get('Account__c'), AllTimeRevenue__c = (Double)ar.get('NormalizeAmount') )); } } for(AggregateResult ar: [SELECT SUM(Normalized_Amount__c) NormalizeAmount, Grouping(Account__c), Account__c FROM Invoice__c WHERE Category_Invoice__c != 'Monthly' AND Status__c != 'invoice_canceled' AND Date_Invoice__c= THIS_YEAR AND Date_Invoice__c <= TODAY AND Account__c IN: newEntitiesIds GROUP BY Account__c]){ if((ID)ar.get('Account__c') != null){ invToUpdate.add(new Account ( ID = (ID)ar.get('Account__c'), YtD_Revenue_for__c = (Double)ar.get('NormalizeAmount') )); } } if(Trigger.isUpdate){ for(AggregateResult ar: [SELECT SUM(Normalized_Amount__c) NormalizeAmount, Grouping(Account__c), Account__c FROM Invoice__c WHERE Category_Invoice__c != 'Monthly' AND Status__c != 'invoice_canceled' AND Account__c IN: oldEntitiesIds GROUP BY Account__c]){ if((ID)ar.get('Account__c') != null){ oldInvoicesToUpdate.add(new Account ( ID = (ID)ar.get('Account__c'), AllTimeRevenue__c = (Double)ar.get('NormalizeAmount') )); } } for(AggregateResult ar: [SELECT SUM(Normalized_Amount__c) NormalizeAmount, Grouping(Account__c), Account__c FROM Invoice__c WHERE Category_Invoice__c != 'Monthly' AND Status__c != 'invoice_canceled' AND Date_Invoice__c= THIS_YEAR AND Date_Invoice__c <= TODAY AND Account__c IN: oldEntitiesIds GROUP BY Account__c]){ if((ID)ar.get('Account__c') != null){ oldInvToUpdate.add(new Account ( ID = (ID)ar.get('Account__c'), YtD_Revenue__c = (Double)ar.get('NormalizeAmount') )); } } } } private void saveData(){ if(!invoicesToUpdate.isEmpty()){ update invoicesToUpdate; } if(!invToUpdate.isEmpty()){ update invToUpdate; } if(Trigger.isUpdate){ if(!oldInvoicesToUpdate.isEmpty()){ update oldInvoicesToUpdate; } } if(Trigger.isUpdate){ if(!oldInvToUpdate.isEmpty()){ update oldInvToUpdate; } } } }