@isTest private class QuotePDFControllerTest { @TestSetup static void setup(){ TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Opportunity','Contact','Document'}); } @isTest static void test_init() { Id pricebookId = Test.getStandardPricebookId(); Pricebook2 pricebook = new Pricebook2( Name = 'IE', ProductSegment__c = 'IE', TradeType__c = 'Taxation', SalesChannel__c = 'direct', MachineParts__c = 'Machine', isActive = true ); insert pricebook; Product2 product1 = new Product2(); product1.Name = 'product1'; product1.ProductCode = 'product1'; product1.Product_ECCode__c = 'product1'; product1.IsActive = true; insert product1; PricebookEntry standardPrice1 = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = product1.Id, UnitPrice = 0, IsActive = true ); insert standardPrice1; PricebookEntry entry1 = new PricebookEntry(Pricebook2Id = pricebook.Id, Product2Id = product1.Id); entry1.UnitPrice = 0; entry1.IsActive = true; entry1.UseStandardPrice = false; insert entry1; Account user = new Account( Name = '*', FacilityName__c = 'user', PostCode__c = '123456' ); insert user; Contact contact = new Contact( LastName = 'contact', AccountId = user.Id ); insert contact; Opportunity opp = new Opportunity( Name = 'test opp', AccountId = user.Id, StageName = 'Prospect Created', CurrencyIsoCode = 'CNY', ProductSegment__c = 'IE', CloseDate = Date.today(), NewInquiryDate__c = Date.today().addDays(-2), ExpectedOrderDate__c = Date.today().addDays(2), TradeType__c = 'Taxation', SalesChannel__c = 'direct', Machine_Parts__c = 'Machine', Pricebook2Id = pricebook.Id ); insert opp; OpportunityLineItem oli1 = new OpportunityLineItem( OpportunityId = opp.Id, PricebookEntryId = entry1.Id, Quantity = 10, UnitPrice = 10 ); OpportunityLineItem oli2 = new OpportunityLineItem( OpportunityId = opp.Id, PricebookEntryId = entry1.Id, Quantity = 20, UnitPrice = 20 ); insert new OpportunityLineItem[] {oli1, oli2}; OpportunityContactRole ocr = new OpportunityContactRole( OpportunityId = opp.Id, ContactId = contact.Id, IsPrimary = true ); insert ocr; Quote quo = new Quote( Name = 'quo', OpportunityId = opp.Id, Pricebook2Id = pricebook.Id, SetName1__c = 'setname1', SetQty1__c = 1 ); insert quo; QuoteLineItem qli1 = new QuoteLineItem( QuoteId = quo.Id, PricebookEntryId = entry1.Id, Quantity = 10, UnitPrice = 10, Custom_Price__c = 15, Set__c = 'set01', SingleProduct__c = false ); QuoteLineItem qli2 = new QuoteLineItem( QuoteId = quo.Id, PricebookEntryId = entry1.Id, Quantity = 20, UnitPrice = 20, Custom_Price__c = 25, Set__c = 'set01' ); insert new QuoteLineItem[] {qli1, qli2}; opp.SyncedQuoteId = quo.Id; update opp; PageReference page = new PageReference('/apex/QuotePDF?Id=' + quo.Id + '&printprice=true'); System.Test.setCurrentPage(page); QuotePDFController controller = new QuotePDFController(); controller.init(); } }