public class TestData { public static Account generateAccount() { Account acc = new Account(Name = 'test account'); insert acc; return acc; } public Order generateOrder(ID accountId, Date effDate, String status) { Order od = new Order(AccountId = accountId, EffectiveDate = effDate, Status = status); insert od; return od; } public static Contact generateContact(ID accountId) { Contact con = new Contact(AccountId = accountId, LastName = 'test contact', Birthdate = Date.today()); insert con; return con; } public static List<Product2> generateProducts() { List<Product2> pros = new List<Product2>(); Product2 pro1 = new Product2(Name = 'test product1', IsActive = true); Product2 pro2 = new Product2(Name = 'test product2', IsActive = true); pros.add(pro1); pros.add(pro2); insert pros; return pros; } public static PriceBook2 generatePricebook() { return [SELECT Id from Pricebook2 where isStandard = true]; } public static List<PricebookEntry> generatePriceBookItems(List<Product2> pros, PriceBook2 book) { List<PricebookEntry> items = new List<PricebookEntry>(); PricebookEntry item1 = new PricebookEntry(Product2Id = pros[0].Id, PriceBook2Id = book.Id, IsActive = true, UnitPrice = 1000); PricebookEntry item2 = new PricebookEntry(Product2Id = pros[1].Id, PriceBook2Id = book.Id, IsActive = true, UnitPrice = 2000); items.add(item1); items.add(item2); insert items; return items; } public static Opportunity generateOpportunity(ID accountId, ID pricebookId) { Opportunity opp = new Opportunity(AccountId = accountId, pricebook2Id = pricebookId, Name = 'test opportunity', StageName = 'Qualification', CloseDate = Date.today().addMonths(1)); insert opp; return opp; } public static Quote generateQuote(ID opportunityId, ID pricebookId) { Quote quote = new Quote(OpportunityId = opportunityId, Name = 'test quote', pricebook2Id = pricebookId, QuoteDate__c = Date.today().addMonths(1)); insert quote; return quote; } public static List<QuoteLineItem> generateQuoteLineItem(ID quoteId, List<Product2> pros, List<PricebookEntry> pbes) { List<QuoteLineItem> lis = new List<QuoteLineItem>(); QuoteLineItem li1 = new QuoteLineItem(QuoteId = quoteId, Product2Id = pros[0].Id, PricebookEntryId = pbes[0].Id, Quantity = 10, UnitPrice = 100); QuoteLineItem li2 = new QuoteLineItem(QuoteId = quoteId, Product2Id = pros[1].Id, PricebookEntryId = pbes[1].Id, Quantity = 10, UnitPrice = 100); lis.add(li1); lis.add(li2); insert lis; return lis; } public static Contract generateContract(ID accountId) { Contract contract=new Contract(AccountId = accountId, Name = 'test contract'); insert contract; return contract; } public static List<ContractItem__c> generateContractItem(ID contractId,List<Product2> pros){ List<ContractItem__c> item=new List<ContractItem__c>(); ContractItem__c ci1=new ContractItem__c( Contract__c = contractId, UnitPrice__c=50, Product__c = pros[0].Id); ContractItem__c ci2=new ContractItem__c( Contract__c = contractId, UnitPrice__c=50, Product__c = pros[1].Id); item.add(ci1); item.add(ci2); insert item; return item; } }
报价单测试类
@isTest public class QuoteControllerTest{ @isTest(seealldata=true) private static void QuoteTriggerTest() { Account acc = TestData.generateAccount(); Contact con = TestData.generateContact(acc.Id); List<Product2> pros = TestData.generateProducts(); PriceBook2 pb = TestData.generatePricebook(); List<PricebookEntry> pbes = TestData.generatePriceBookItems(pros, pb); Opportunity opp = TestData.generateOpportunity(acc.Id, pb.Id); Quote qt = TestData.generateQuote(opp.Id, pb.Id); TestData.generateQuoteLineItem(qt.Id, pros, pbes); PageReference ref = Page.QuotePage; Test.setCurrentPage(ref); ApexPages.currentPage().getParameters().put('id', qt.Id); QuoteController pdf = new QuoteController(); } }
客户信息导出信息类
@isTest public class ExportAccountControllerTest{ @isTest private static void ExportAccountTest() { Account acc = TestData.generateAccount(); Contract con = TestData.generateContract(acc.Id); List<Product2> pros = TestData.generateProducts(); TestData.generateContractItem(con.Id, pros); PageReference ref = Page.ExportAccountPage; Test.setCurrentPage(ref); ApexPages.currentPage().getParameters().put('id', acc.Id); ExportAccountController pdf = new ExportAccountController(); } }