function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Eswar Varma MudunuriEswar Varma Mudunuri 

How to test class for triggerhandler

My class

public class CLDLY_InvoiceLineItemTriggerHandler {
    public static void beforeInsertEventHandler(List < Apttus_Billing__InvoiceLineItem__c > listInvoiceLines) {
        
        if (listInvoiceLines != null && !listInvoiceLines.isEmpty()) {
            //Apttus_Config2__AssetLineItem__c MAP GENERATION TO GET DATA
            Set < ID > assetsIDs = new Set < ID > ();
            Map < ID, Apttus_Config2__AssetLineItem__c > assetsMap = new Map < ID, Apttus_Config2__AssetLineItem__c > ();
            for (Apttus_Billing__InvoiceLineItem__c a: listInvoiceLines) {
                assetsIDs.add(a.Apttus_Billing__AssetLineItemId__c);
            }
            List < Apttus_Config2__AssetLineItem__c > listOfAsset = [select ID, CLDLY_Consortium_Relationship__c,
                CLDLY_Invoice_Grouping_Key__c,
                CLDLY_Quote_Account__c,CLDLY_Quote_Opportunity__c,CLDLY_Quote_Vendor_Account__c                                                    
                from Apttus_Config2__AssetLineItem__c where ID in: assetsIDs
            ];

            for (Apttus_Config2__AssetLineItem__c asset: listOfAsset) {
                assetsMap.put(asset.ID, asset);
            }
            //Apttus_Billing__InvoiceLineItem__c LOOP TO POPULATE THE VALUES
            for (Apttus_Billing__InvoiceLineItem__c invoiceLineItemSO: listInvoiceLines) {
                system.debug('Before INSERT CLDLY_InvoiceLineItemTriggerHandler 0 *************************');
                if (invoiceLineItemSO.Apttus_Billing__BillingScheduleId__c != NULL && invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c != NULL) {
                    system.debug('Before INSERT CLDLY_InvoiceLineItemTriggerHandler 1 *************************');

                    if (assetsMap.containsKey(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c) &&
                        assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Invoice_Grouping_Key__c != NULL &&
                        assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Account__c != NULL &&
                        assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Opportunity__c != NULL &&
                        assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Vendor_Account__c != NULL
                    ) {
                        system.debug('Before INSERT CLDLY_InvoiceLineItemTriggerHandler 2 COPIED VALUES FROM Assets *************************');

                        // SET FROM  ASSETS
                        invoiceLineItemSO.CLDLY_Invoice_Grouping_Key__c = assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Invoice_Grouping_Key__c;
                        invoiceLineItemSO.CLDLY_Quote_Account__c = assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Account__c;
                        invoiceLineItemSO.CLDLY_Quote_Opportunity__c = assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Opportunity__c;
                        invoiceLineItemSO.CLDLY_Quote_Vendor_Account__c = assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Quote_Vendor_Account__c;
                        
                        if(assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Consortium_Relationship__c != NULL){
                          invoiceLineItemSO.CLDLY_Consortium_Relationship__c = assetsMap.get(invoiceLineItemSO.Apttus_Billing__AssetLineItemId__c).CLDLY_Consortium_Relationship__c;
                        }

                    }
                }
            }


        }
    }
    public static void beforeUpdateEventHandler(Map < Id, Apttus_Billing__InvoiceLineItem__c > mapInvoiceLineItem, Map < Id, Apttus_Billing__InvoiceLineItem__c > mapInvoiceLineItemOld) {
        if (mapInvoiceLineItem != null && !mapInvoiceLineItem.isEmpty()) {
            for (Apttus_Billing__InvoiceLineItem__c invoiceLineItemSO: mapInvoiceLineItem.values()) {

                system.debug('before Update beforeUpdateEventHandler CLDLY_InvoiceLineItemTriggerHandler 2 Populated all formulaaasss *************************');

            }

        }
    }
    //To update Invoices
    //
    public static void updateInvoiceEventHandler(List < Apttus_Billing__InvoiceLineItem__c > listInvoiceLines) {
        
        if (listInvoiceLines != null && !listInvoiceLines.isEmpty()) {
        system.debug('$$%% 1 updateInvoiceEventHandler => '+listInvoiceLines.size());
              Map<ID, Apttus_Billing__Invoice__c> parentOpps = new Map<ID, Apttus_Billing__Invoice__c>(); //Making it a map instead of list for easier lookup
              List<Id> listIds = new List<Id>();
            
              for (Apttus_Billing__InvoiceLineItem__c childObj : listInvoiceLines) {
                listIds.add(childObj.Apttus_Billing__InvoiceId__c);
              }
            
              //Populate the map. Also make sure you select the field you want to update
              parentOpps = new Map<Id, Apttus_Billing__Invoice__c>([SELECT id,Name, CLDLY_Invoice_Grouping_Key__c, CLDLY_Quote_Account__c,CLDLY_Quote_Opportunity__c,CLDLY_Quote_Vendor_Account__c, (SELECT ID, CLDLY_Invoice_Grouping_Key__c, CLDLY_Quote_Account__c,CLDLY_Quote_Opportunity__c, CLDLY_Quote_Vendor_Account__c FROM Apttus_Billing__InvoiceLineItems__r) FROM Apttus_Billing__Invoice__c WHERE ID IN :listIds]);
            
              for (Apttus_Billing__InvoiceLineItem__c quote: listInvoiceLines){
                 system.debug('$$%% 2 updateInvoiceEventHandler  => quote.ID => '+quote.ID); 
                 if(quote.CLDLY_Invoice_Grouping_Key__c != NULL){
                     Apttus_Billing__Invoice__c myParentOpp = parentOpps.get(quote.Apttus_Billing__InvoiceId__c);
                     myParentOpp.CLDLY_Invoice_Grouping_Key__c = quote.CLDLY_Invoice_Grouping_Key__c;
                     myParentOpp.CLDLY_Quote_Account__c = quote.CLDLY_Quote_Account__c; 
                     myParentOpp.CLDLY_Quote_Opportunity__c = quote.CLDLY_Quote_Opportunity__c;
                     myParentOpp.CLDLY_Quote_Vendor_Account__c = quote.CLDLY_Quote_Vendor_Account__c;
                     system.debug('$$%% 3 updateInvoiceEventHandler  => myParentOpp.ID => '+myParentOpp.ID); 
                 } 
              }
            
            if(parentOpps.values().size() > 0){
                system.debug('$$%% 4 updateInvoiceEventHandler  => parentOpps.values().size() => '+parentOpps.values().size()); 
                update parentOpps.values();
            }else{
                system.debug('$$%% 5 parentOpps.values().size() => '+parentOpps.values().size());
            }
        }
    }
}