/* TEST CLASS FOR QuoteTriggerHandler TO ASSESS HANDLING OF UPDATES TO
BILL TO AND SHIP TO ACCOUNTS, CONTACTS, AND ADDRESSES
- John Scardino, 2015-05-28
*/
@isTest // test classes need the @isTest classification
private class QuoteTriggerHandlerTest {
static testMethod void insertNewQuoteTest() {
// select account to add a new opportunity towards
Account newAccountJawn = new Account(Name='Jawn', Phone='(555) 555-5555',
Customer_Class__c='Defense Industry', Entity_Type__c='Domestic');
insert newAccountJawn;
// create new opportunity on the account
// -> reference new op id on the new quote
Opportunity newOpportunityJawn = new Opportunity(/*RecordType='Transactional Opportunity',*/CloseDate=date.Today(), StageName='Quoted', Name='Test Op', Account=[SELECT Id FROM Account WHERE Id= :[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id]]);
insert newOpportunityJawn;
// create new contact on the account
// -> reference new contact id on the new quote
Contact newContactJawn = new Contact(LastName='Aaron', Account=[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id]);
insert newContactJawn;
// create new BILL TO address on the account
// -> reference new bill to address id on the new quote
Address__c newBillingAddressJawn = new Address__c(Account_Name__c=[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id],
Address_Line_1__c='Apple Inc.', Address_Line_2__c='1 Infinite Loop', City__c='Cupertino', State_Code__c='CA', Postal_Code__c='95014', Postal_Code_Extension__c='2083', Country_Code__c='US', Type__c='Billing');
insert newBillingAddressJawn;
// create new SHIP TO address on the account
// -> reference new ship to address id on the new quote
Address__c newShippingAddressJawn = new Address__c(Account_Name__c=[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id],
Address_Line_1__c='621 Lynnhaven Pkwy', Address_Line_2__c='Ste 400', City__c='Virginia Beach', State_Code__c='VA', Postal_Code__c='23452', Country_Code__c='US', Type__c='Shipping');
insert newShippingAddressJawn;
// create new quote
// <- include new id values for lookup fields to opportunity, contact, bill to and ship to
SBQQ__Quote__c newQuoteJawn = new SBQQ__Quote__c(SBQQ__Opportunity__c=[SELECT Id FROM Opportunity WHERE Id= :newOpportunityJawn.Id],
SBQQ__Type__c='Quote', SBQQ__Status__c='Draft', Contract__c=[SELECT Id FROM Contract__c WHERE Id= :newContactJawn.Id],
Bill_To_Address__c=[SELECT Id FROM Address__c WHERE Id= :newBillingAddressJawn.Id], Ship_To_Address__c=[SELECT Id FROM Address__c WHERE Id= :newShippingAddressJawn.Id], Bill_To_Contact__c=[SELECT Id FROM Contact WHERE Id= :newContactJawn.Id], Ship_To_Contact__c=[SELECT Id FROM Contact WHERE Id= :newContactJawn.Id], Bill_To_Account__c=[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id], Ship_To_Account__c=[SELECT Id FROM Account WHERE Id= :newAccountJawn.Id]);
insert newQuoteJawn;
// inserting the above quote should have fired off the trigger to this point
// the following lines are verification steps to ensure the trigger worked correctly
SBQQ__Quote__c quoteValuesTest = [SELECT Id, Bill_To_Contact_Name__c, Ship_To_Contact_Name__c,
Bill_To_Account_Name__c, Ship_To_Account_Name__c, SBQQ__BillingStreet__c, Bill_To_Street_Line_2__c, SBQQ__BillingCity__c, SBQQ__BillingState__c, SBQQ__BillingPostalCode__c, SBQQ__BillingCountry__c, SBQQ__ShippingStreet__c, Ship_To_Street_Line_2__c, SBQQ__ShippingCity__c, SBQQ__ShippingState__c, SBQQ__ShippingPostalCode__c, SBQQ__ShippingCountry__c FROM SBQQ__Quote__c WHERE id= :newQuoteJawn.Id];
// test contact name
System.assert(quoteValuesTest.Bill_To_Contact_Name__c == newContactJawn.Name);
System.assert(quoteValuesTest.Ship_To_Contact_Name__c == newContactJawn.Name);
// test account name
System.assert(quoteValuesTest.Bill_To_Account_Name__c == newAccountJawn.Name);
System.assert(quoteValuesTest.Ship_To_Account_Name__c == newAccountJawn.Name);
// test billing address information
System.assert(quoteValuesTest.SBQQ__BillingStreet__c == newBillingAddressJawn.Address_Line_1__c);
System.assert(quoteValuesTest.Bill_To_Street_Line_2__c == newBillingAddressJawn.Address_Line_2__c);
System.assert(quoteValuesTest.SBQQ__BillingCity__c == newBillingAddressJawn.City__c);
System.assert(quoteValuesTest.SBQQ__BillingState__c == newBillingAddressJawn.State_Code__c);
System.assert(quoteValuesTest.SBQQ__BillingPostalCode__c == newBillingAddressJawn.Postal_Code__c && '-' && newBillingAddressJawn.Postal_Code_Extension__c);
System.assert(quoteValuesTest.SBQQ__BillingCountry__c == newBillingAddressJawn.Country_Code__c);
// test shipping address information
System.assert(quoteValuesTest.SBQQ__ShippingStreet__c == newShippingAddressJawn.Address_Line_1__c);
System.assert(quoteValuesTest.Ship_To_Street_Line_2__c == newShippingAddressJawn.Address_Line_2__c);
System.assert(quoteValuesTest.SBQQ__ShippingCity__c == newShippingAddressJawn.City__c);
System.assert(quoteValuesTest.SBQQ__ShippingState__c == newShippingAddressJawn.State_Code__c);
System.assert(quoteValuesTest.SBQQ__ShippingPostalCode__c == newShippingAddressJawn.Postal_Code__c && '-' && newShippingAddressJawn.Postal_Code_Extension__c);
System.assert(quoteValuesTest.SBQQ__ShippingCountry__c == newShippingAddressJawn.Country_Code__c);
}
}
Hi Chris, Please try this.
/* TEST CLASS FOR QuoteTriggerHandler TO ASSESS HANDLING OF UPDATES TO
BILL TO AND SHIP TO ACCOUNTS, CONTACTS, AND ADDRESSES
- John Scardino, 2015-05-28
*/
@isTest // test classes need the @isTest classification
private class QuoteTriggerHandlerTest {
static testMethod void insertNewQuoteTest() {
// select account to add a new opportunity towards
Account newAccountJawn = new Account(Name='Jawn', Phone='(555) 555-5555', Customer_Class__c='Defense Industry', Entity_Type__c='Domestic');
insert newAccountJawn;
// create new opportunity on the account
// -> reference new op id on the new quote
Opportunity newOpportunityJawn = new Opportunity(/*RecordType='Transactional Opportunity',*/CloseDate=date.Today(), StageName='Quoted', Name='Test Op', Account=newAccountJawn);
insert newOpportunityJawn;
// create new contact on the account
// -> reference new contact id on the new quote
Contact newContactJawn = new Contact(LastName='Aaron', Account=newAccountJawn.Id);
insert newContactJawn;
// create new BILL TO address on the account
// -> reference new bill to address id on the new quote
Address__c newBillingAddressJawn = new Address__c(Account_Name__c=newAccountJawn.Id,
Address_Line_1__c='Apple Inc.', Address_Line_2__c='1 Infinite Loop', City__c='Cupertino', State_Code__c='CA', Postal_Code__c='95014', Postal_Code_Extension__c='2083', Country_Code__c='US', Type__c='Billing');
insert newBillingAddressJawn;
// create new SHIP TO address on the account
// -> reference new ship to address id on the new quote
Address__c newShippingAddressJawn = new Address__c(Account_Name__c=newAccountJawn.Id,
Address_Line_1__c='621 Lynnhaven Pkwy', Address_Line_2__c='Ste 400', City__c='Virginia Beach', State_Code__c='VA', Postal_Code__c='23452', Country_Code__c='US', Type__c='Shipping');
insert newShippingAddressJawn;
// create new quote
// <- include new id values for lookup fields to opportunity, contact, bill to and ship to
SBQQ__Quote__c newQuoteJawn = new SBQQ__Quote__c(SBQQ__Opportunity__c=newOpportunityJawn.Id,
SBQQ__Type__c='Quote', SBQQ__Status__c='Draft', Contract__c=newContactJawn.Id,
Bill_To_Address__c=newBillingAddressJawn.Id, Ship_To_Address__c=newShippingAddressJawn.Id, Bill_To_Contact__c=newContactJawn.Id, Ship_To_Contact__c=newContactJawn.Id, Bill_To_Account__c=newAccountJawn.Id, Ship_To_Account__c= newAccountJawn.Id);
insert newQuoteJawn;
// inserting the above quote should have fired off the trigger to this point
// the following lines are verification steps to ensure the trigger worked correctly
SBQQ__Quote__c quoteValuesTest = [SELECT Id, Bill_To_Contact_Name__c, Ship_To_Contact_Name__c,
Bill_To_Account_Name__c, Ship_To_Account_Name__c, SBQQ__BillingStreet__c, Bill_To_Street_Line_2__c, SBQQ__BillingCity__c, SBQQ__BillingState__c, SBQQ__BillingPostalCode__c, SBQQ__BillingCountry__c, SBQQ__ShippingStreet__c, Ship_To_Street_Line_2__c, SBQQ__ShippingCity__c, SBQQ__ShippingState__c, SBQQ__ShippingPostalCode__c, SBQQ__ShippingCountry__c FROM SBQQ__Quote__c WHERE id= :newQuoteJawn.Id];
// test contact name
System.assert(quoteValuesTest.Bill_To_Contact_Name__c == newContactJawn.Name);
System.assert(quoteValuesTest.Ship_To_Contact_Name__c == newContactJawn.Name);
// test account name
System.assert(quoteValuesTest.Bill_To_Account_Name__c == newAccountJawn.Name);
System.assert(quoteValuesTest.Ship_To_Account_Name__c == newAccountJawn.Name);
// test billing address information
System.assert(quoteValuesTest.SBQQ__BillingStreet__c == newBillingAddressJawn.Address_Line_1__c);
System.assert(quoteValuesTest.Bill_To_Street_Line_2__c == newBillingAddressJawn.Address_Line_2__c);
System.assert(quoteValuesTest.SBQQ__BillingCity__c == newBillingAddressJawn.City__c);
System.assert(quoteValuesTest.SBQQ__BillingState__c == newBillingAddressJawn.State_Code__c);
System.assert(quoteValuesTest.SBQQ__BillingPostalCode__c == newBillingAddressJawn.Postal_Code__c && '-' && newBillingAddressJawn.Postal_Code_Extension__c);
System.assert(quoteValuesTest.SBQQ__BillingCountry__c == newBillingAddressJawn.Country_Code__c);
// test shipping address information
System.assert(quoteValuesTest.SBQQ__ShippingStreet__c == newShippingAddressJawn.Address_Line_1__c);
System.assert(quoteValuesTest.Ship_To_Street_Line_2__c == newShippingAddressJawn.Address_Line_2__c);
System.assert(quoteValuesTest.SBQQ__ShippingCity__c == newShippingAddressJawn.City__c);
System.assert(quoteValuesTest.SBQQ__ShippingState__c == newShippingAddressJawn.State_Code__c);
System.assert(quoteValuesTest.SBQQ__ShippingPostalCode__c == newShippingAddressJawn.Postal_Code__c && '-' && newShippingAddressJawn.Postal_Code_Extension__c);
System.assert(quoteValuesTest.SBQQ__ShippingCountry__c == newShippingAddressJawn.Country_Code__c);
}
}
hope this resolve your query. Please mark it best answer if it really helps.