You need to sign in to do that
Don't have an account?
Mauricio Oliveira
Can't reproduce Syncing Quote correct behavior in test
Hi everyone.
I have a Quote trigger that should update a custom field when the Quote is unsynced, but I'm having troubles in representing this correctly in a test. This is from my trigger:
This last assert fails. I have added some system.debug calls in this code and found out that it is getting into that if statement that checks if the Quote was and remains unsynced. When accessing the oldMap version of the Quote right after the update opportunity call, IsSyncing is already set to false. So, why is that happening? Am I missing something?
Thank you
I have a Quote trigger that should update a custom field when the Quote is unsynced, but I'm having troubles in representing this correctly in a test. This is from my trigger:
// Only case that it shouldn't be marked is when editing an unsynced Quote if (!old_map.get(quote.Id).IsSyncing && !quote.IsSyncing) { continue; } sales_order.Quote_was_modified__c = true; update sales_order;As you can see, the field should always be updated, unless the Quote was unsynced and remains unsynced. Doing this in Salesforce interface (pressing Stop Sync button) works fine, but this test fails and I can't figure out why:
quote = [SELECT Id, IsSyncing FROM Quote WHERE Id =: quote.Id]; system.assert(quote.IsSyncing); // Unsync that quote opportunity.SyncedQuoteId = null; update opportunity; // Check if it was unsynced quote = [SELECT Id, IsSyncing FROM Quote WHERE Id =: quote.Id]; system.assert(!quote.IsSyncing); sales_order = [SELECT Id, Quote_was_modified__c FROM Sales_Order__c WHERE Id =: sales_order.Id]; system.assert(sales_order.Quote_was_modified__c);
This last assert fails. I have added some system.debug calls in this code and found out that it is getting into that if statement that checks if the Quote was and remains unsynced. When accessing the oldMap version of the Quote right after the update opportunity call, IsSyncing is already set to false. So, why is that happening? Am I missing something?
Thank you
Eric Pepin
The continue keyword only skips to the next iteration of a looping structure. If this code is not contained within a loop, then the continue keyword will simply do nothing and the update will happen in all cases. You haven't provided enough code to know if this is the issue or not.