You need to sign in to do that
Don't have an account?

Unit test failing
I've built this and I'm not sure why my first system.asserEquals is failing. The records don't seem to be updating. Thanks for any help.
Trigger
Trigger
trigger CommissionsOnQCD on zqu__QuoteChargeDetail__c (before insert, before update) { List<zqu__QuoteChargeDetail__c> quoteCharges = [SELECT Id, Name, zqu__MRR__c, zqu__BillingTotal__c FROM zqu__QuoteChargeDetail__c WHERE Id IN :Trigger.new]; List<zqu__QuoteChargeDetail__c> updateQuoteCharges = new List<zqu__QuoteChargeDetail__c>(); for (zqu__QuoteChargeDetail__c charges : quoteCharges) { // Standard products if (!charges.Name.contains('SEO') && !charges.Name.contains('Social Ads') && !charges.Name.contains('One Time Fee') && !charges.Name.contains('Setup Fee') && charges.zqu__MRR__c != null){ // Calculate PAR charges.PAR__c = charges.zqu__MRR__c * 12 * 0.2; // Calculate FL Commission if (charges.Name.contains('Annual')) { charges.FL_Commission__c = (charges.zqu__MRR__c * 12 * 0.2); } else { charges.FL_Commission__c = (charges.zqu__MRR__c * 12 * 0.15); } updateQuoteCharges.add(charges); } // SEO/Social Ads - non-standard products if ((charges.Name.contains('SEO') || charges.Name.contains('Social Ads')) && !charges.Name.contains('One Time Fee') && !charges.Name.contains('Setup Fee') && charges.zqu__MRR__c != null){ // Calculate PAR charges.PAR__c = charges.zqu__MRR__c * 12 * 0.2 * 0.4; // Calculate FL Commission if (charges.Name.contains('Annual')) { charges.FL_Commission__c = (charges.zqu__MRR__c * 12 * 0.2 * 0.4); } else { charges.FL_Commission__c = (charges.zqu__MRR__c * 12 * 0.15 * 0.4); } updateQuoteCharges.add(charges); } // One Time Fees if (charges.Name.contains('One Time Fee') && charges.zqu__BillingTotal__c != null) { // Calculate PAR charges.PAR__c = charges.zqu__BillingTotal__c * 0.15; // Calculate FL Commission charges.FL_Commission__c = charges.zqu__BillingTotal__c * 0.15; updateQuoteCharges.add(charges); } // Setup fees if (charges.Name.contains('Setup Fee') && charges.zqu__BillingTotal__c != null) { charges.Setup_Fees__c = charges.zqu__BillingTotal__c; updateQuoteCharges.add(charges); } } update updateQuoteCharges; }Here's the Test Class:
@isTest private class CommissionsOnQCDTest { @isTest static void createAccountContactOpp() { // Create Account Account acc = New Account(); acc.Name = '1234567890987654321'; insert acc; // Create Contact Contact myCon = New Contact(); myCon.FirstName = 'Steve'; myCon.LastName = 'Welderbeast'; myCon.Email = 'apextest@gmail.com'; myCon.AccountId = acc.Id; insert myCon; // Create Opportunity Opportunity opp = New Opportunity(); opp.Name = 'test opp'; opp.AccountId = acc.Id; opp.CloseDate = Date.today(); opp.StageName = 'Discovery'; insert opp; // Create a quote zqu__Quote__c myQuote = New zqu__Quote__c(); myQuote.zqu__Account__c = acc.Id; myQuote.Name = 'One'; insert myQuote; // Create Annual - Standard zqu__QuoteChargeDetail__c quoteAnnualStandard = New zqu__QuoteChargeDetail__c(); quoteAnnualStandard.Name = 'Marketing Essentials - Annual Service Fee'; quoteAnnualStandard.zqu__MRR__c = 100; quoteAnnualStandard.zqu__Quote__c = myQuote.Id; insert quoteAnnualStandard; zqu__QuoteChargeDetail__c zQuote = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteAnnualStandard.Id]; system.assertEquals(240,zQuote.PAR__c); system.assertEquals(240,zQuote.FL_Commission__c); system.assertEquals(null,zQuote.Setup_Fees__c); // Create Annual - Non-Standard zqu__QuoteChargeDetail__c quoteAnnualNonStandard = New zqu__QuoteChargeDetail__c(); quoteAnnualNonStandard.Name = 'SEO - Annual Service Fee'; quoteAnnualNonStandard.zqu__MRR__c = 100; quoteAnnualNonStandard.zqu__Quote__c = myQuote.Id; insert quoteAnnualNonStandard; zqu__QuoteChargeDetail__c zQuote2 = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteAnnualNonStandard.Id]; system.assertEquals(96,zQuote2.PAR__c); system.assertEquals(96,zQuote2.FL_Commission__c); system.assertEquals(null,zQuote2.Setup_Fees__c); // Create Monthly - Standard zqu__QuoteChargeDetail__c quoteMonthlyStandard = New zqu__QuoteChargeDetail__c(); quoteMonthlyStandard.Name = 'Engage - Monthly Service Fee'; quoteMonthlyStandard.zqu__MRR__c = 100; quoteMonthlyStandard.zqu__Quote__c = myQuote.Id; insert quoteMonthlyStandard; zqu__QuoteChargeDetail__c zQuote3 = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteMonthlyStandard.Id]; system.assertEquals(240,zQuote3.PAR__c); system.assertEquals(180,zQuote3.FL_Commission__c); system.assertEquals(null,zQuote3.Setup_Fees__c); // Create Monthly - Non-Standard zqu__QuoteChargeDetail__c quoteMonthlyNonStandard = New zqu__QuoteChargeDetail__c(); quoteMonthlyNonStandard.Name = 'SEO - Monthly Service Fee'; quoteMonthlyNonStandard.zqu__MRR__c = 100; quoteMonthlyNonStandard.zqu__Quote__c = myQuote.Id; insert quoteMonthlyNonStandard; zqu__QuoteChargeDetail__c zQuote4 = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteMonthlyNonStandard.Id]; system.assertEquals(96,zQuote4.PAR__c); system.assertEquals(72,zQuote4.FL_Commission__c); system.assertEquals(null,zQuote4.Setup_Fees__c); // Create One Time Fee zqu__QuoteChargeDetail__c quoteOneTimeFee = New zqu__QuoteChargeDetail__c(); quoteOneTimeFee.Name = 'SEO - One Time Fee'; quoteOneTimeFee.zqu__MRR__c = 0; quoteOneTimeFee.zqu__BillingTotal__c = 100; quoteOneTimeFee.zqu__Quote__c = myQuote.Id; insert quoteOneTimeFee; zqu__QuoteChargeDetail__c zQuote5 = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteOneTimeFee.Id]; system.assertEquals(15,zQuote5.PAR__c); system.assertEquals(15,zQuote5.FL_Commission__c); system.assertEquals(null,zQuote5.Setup_Fees__c); // Create Setup Fee zqu__QuoteChargeDetail__c quoteSetupFee = New zqu__QuoteChargeDetail__c(); quoteSetupFee.Name = 'SEO - Setup Fee'; quoteSetupFee.zqu__MRR__c = 0; quoteSetupFee.zqu__BillingTotal__c = 100; quoteSetupFee.zqu__Quote__c = myQuote.Id; insert quoteSetupFee; zqu__QuoteChargeDetail__c zQuote6 = [SELECT PAR__c, FL_Commission__c, Setup_Fees__c FROM zqu__QuoteChargeDetail__c WHERE Id = :quoteSetupFee.Id]; system.assertEquals(null,zQuote6.PAR__c); system.assertEquals(null,zQuote6.FL_Commission__c); system.assertEquals(100,zQuote6.Setup_Fees__c); } }
There was no need to query for the records in the trigger, I removed that, ie quoteCharges.
There was no need to explicitly call update on the records in the trigger, I removed that, ie updateQuoteCharges.