@isTest private class NEWCreateSWOQuoteControllerTest { @TestSetup static void setup(){ TestDataUtility.CreatePIPolicyConfigurations(new string[]{'Quotes__c','Contact'}); } static testMethod void QuotesIdIsNull() { List rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE']; List rectOpp = [select Id from RecordType where IsActive = true and SobjectType = 'Opportunity' and Name = 'SSBD']; Id pricebookId = Test.getStandardPricebookId(); Pricebook2 pricebook = new Pricebook2( Name = 'IE', ProductSegment__c = 'IE', TradeType__c = 'Taxation', SalesChannel__c = 'direct', MachineParts__c = 'Machine', CurrencyIsoCode = 'CNY' ); insert pricebook; Product2 product1 = new Product2(); product1.Name = 'product1'; product1.IsActive = true; product1.ProductCode = 'product1'; product1.ProductStatus__c = '1'; product1.NMPAStatus_one__c = 'Z1'; product1.MaterialStatus_one_Start__c = Date.today().addDays(-22); product1.MaterialStatus_one_End__c = Date.today().addDays(22); insert product1; Product2 product2 = new Product2(); product2.Name = 'Service Quote Labour'; product2.IsActive = true; product2.ProductCode = 'Service Quote Labour'; product2.ProductStatus__c = '1'; product2.NMPAStatus_one__c = 'Z1'; product2.SpecialProduct__c = true; product2.MaterialStatus_one_Start__c = Date.today().addDays(-22); product2.MaterialStatus_one_End__c = Date.today().addDays(22); insert product2; Product2 product3 = new Product2(); product3.Name = 'Service Quote Subtotal'; product3.IsActive = true; product3.ProductCode = 'Service Quote Subtotal'; product3.ProductStatus__c = '1'; product3.NMPAStatus_one__c = 'Z1'; product3.SpecialProduct__c = true; product3.MaterialStatus_one_Start__c = Date.today().addDays(-22); product3.MaterialStatus_one_End__c = Date.today().addDays(22); insert product3; SWO__c swo = new SWO__c(); swo.Name = 'Test'; swo.QUANTITY__c = 22; swo.ITEM__c = product1.Id; swo.ESTIMATED_LABOUR_HOURS__c = 22; swo.LABOUR_RATE__c = 22; insert swo; RepairPart__c repairPart = new RepairPart__c(); repairPart.SWO_ID__c = swo.Id; repairPart.Product__c = product1.Id; repairPart.QUANTITY__c = 22; insert repairPart; PageReference page = new PageReference('/apex/NEWCreateSWOQuote?swoId='+swo.Id); System.Test.setCurrentPage(page); NEWCreateSWOQuoteController controller = new NEWCreateSWOQuoteController(); controller.init(); controller.Save(); } static testMethod void QuotesIdIsNotNull() { List rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE']; List rectOpp = [select Id from RecordType where IsActive = true and SobjectType = 'Opportunity' and Name = 'SSBD']; Id pricebookId = Test.getStandardPricebookId(); Pricebook2 pricebook = new Pricebook2( Name = 'IE', ProductSegment__c = 'IE', TradeType__c = 'Taxation', SalesChannel__c = 'direct', MachineParts__c = 'Machine', CurrencyIsoCode = 'CNY' ); insert pricebook; Product2 product1 = new Product2(); product1.Name = 'DESCRIPTION'; product1.IsActive = true; product1.ProductCode = 'DESCRIPTION'; product1.ProductStatus__c = '1'; product1.NMPAStatus_one__c = 'Z1'; product1.MaterialStatus_one_Start__c = Date.today().addDays(-22); product1.MaterialStatus_one_End__c = Date.today().addDays(22); insert product1; Product2 product2 = new Product2(); product2.Name = 'Payment Info'; product2.IsActive = true; product2.ProductCode = 'Payment Info'; product2.ProductStatus__c = '1'; product2.NMPAStatus_one__c = 'Z1'; product2.MaterialStatus_one_Start__c = Date.today().addDays(-22); product2.MaterialStatus_one_End__c = Date.today().addDays(22); product2.SpecialProduct__c = true; product2.Description = 'Test01;Test02'; insert product2; Product2 product3 = new Product2(); product3.Name = 'Service Quote Subtotal'; product3.IsActive = true; product3.ProductCode = 'Service Quote Subtotal'; product3.ProductStatus__c = '1'; product3.NMPAStatus_one__c = 'Z1'; product3.SpecialProduct__c = true; product3.MaterialStatus_one_Start__c = Date.today().addDays(-22); product3.MaterialStatus_one_End__c = Date.today().addDays(22); insert product3; SWO__c swo = new SWO__c(); swo.Name = 'Test'; swo.QUANTITY__c = 22; // swo.ITEM__c = product1.Id; swo.ESTIMATED_LABOUR_HOURS__c = 22; swo.LABOUR_RATE__c = 22; insert swo; Quotes__c quotes = new Quotes__c(); quotes.SWO__c = swo.Id; quotes.QuotesType__c = '零件报价单'; insert quotes; Quotes_item__c quotesItem = new Quotes_item__c(); quotesItem.QUOTE__c = quotes.Id; quotesItem.QuotesItemProduct__c = product1.Id; insert quotesItem; Quotes_item__c quotesItem1 = new Quotes_item__c(); quotesItem1.QUOTE__c = quotes.Id; quotesItem1.QuotesItemProduct__c = product2.Id; quotesItem1.DESCRIPTION__c = 'Test01;Test02'; insert quotesItem1; Quotes_item__c quotesItem2 = new Quotes_item__c(); quotesItem2.QUOTE__c = quotes.Id; quotesItem2.QuotesItemProduct__c = product3.Id; insert quotesItem2; PageReference page = new PageReference('/apex/NEWCreateSWOQuote?Id='+quotes.Id); System.Test.setCurrentPage(page); NEWCreateSWOQuoteController controller = new NEWCreateSWOQuoteController(); controller.init(); controller.Save(); } static testMethod void QuotesSave() { List rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE']; List rectOpp = [select Id from RecordType where IsActive = true and SobjectType = 'Opportunity' and Name = 'SSBD']; Id pricebookId = Test.getStandardPricebookId(); Pricebook2 pricebook = new Pricebook2( Name = 'IE', ProductSegment__c = 'IE', TradeType__c = 'Taxation', SalesChannel__c = 'direct', MachineParts__c = 'Machine', CurrencyIsoCode = 'CNY' ); insert pricebook; Product2 product1 = new Product2(); product1.Name = 'DESCRIPTION'; product1.IsActive = true; product1.ProductCode = 'DESCRIPTION'; product1.ProductStatus__c = '1'; product1.NMPAStatus_one__c = 'Z1'; product1.SpecialProduct__c = true; product1.MaterialStatus_one_Start__c = Date.today().addDays(-22); product1.MaterialStatus_one_End__c = Date.today().addDays(22); insert product1; Product2 product2 = new Product2(); product2.Name = 'Payment Info'; product2.IsActive = true; product2.ProductCode = 'Payment Info'; product2.ProductStatus__c = '1'; product2.NMPAStatus_one__c = 'Z1'; product2.MaterialStatus_one_Start__c = Date.today().addDays(-22); product2.MaterialStatus_one_End__c = Date.today().addDays(22); product2.SpecialProduct__c = true; product2.Description = 'Test01;Test02'; insert product2; Product2 product3 = new Product2(); product3.Name = 'Service Quote Subtotal'; product3.IsActive = true; product3.ProductCode = 'Service Quote Subtotal'; product3.ProductStatus__c = '1'; product3.NMPAStatus_one__c = 'Z1'; product3.SpecialProduct__c = true; product3.MaterialStatus_one_Start__c = Date.today().addDays(-22); product3.MaterialStatus_one_End__c = Date.today().addDays(22); insert product3; SWO__c swo = new SWO__c(); swo.Name = 'Test'; swo.QUANTITY__c = 22; // swo.ITEM__c = product1.Id; swo.ESTIMATED_LABOUR_HOURS__c = 22; swo.LABOUR_RATE__c = 22; insert swo; Quotes__c quotes = new Quotes__c(); quotes.SWO__c = swo.Id; quotes.QuotesType__c = '零件报价单'; quotes.DATE__c = Date.today(); quotes.LEAD_TIME__c = '1 week'; quotes.STATUS__c = 'Qualifying'; quotes.LOCATION__c = 'China - Service'; quotes.TERMS__c = '1% 10 Net 30'; quotes.EXPIRES__c = Date.today(); quotes.EXP_CLOSE__c = Date.today(); quotes.RATE__c = 333; quotes.ORDER_TYPE__c = 'LS Core Clinical'; insert quotes; Quotes_item__c quotesItem = new Quotes_item__c(); quotesItem.QUOTE__c = quotes.Id; quotesItem.QuotesItemProduct__c = product1.Id; quotesItem.QUANTITY__c = 22; quotesItem.AMOUNT__c = 22; quotesItem.RATE__c = 222; quotesItem.TAX_AMT__c = 222; insert quotesItem; Quotes_item__c quotesItem1 = new Quotes_item__c(); quotesItem1.QUOTE__c = quotes.Id; quotesItem1.QuotesItemProduct__c = product2.Id; quotesItem1.DESCRIPTION__c = 'Test01;Test02'; quotesItem1.QUANTITY__c = 22; quotesItem1.AMOUNT__c = 22; quotesItem1.RATE__c = 222; quotesItem1.TAX_AMT__c = 222; insert quotesItem1; Quotes_item__c quotesItem2 = new Quotes_item__c(); quotesItem2.QUOTE__c = quotes.Id; quotesItem2.QuotesItemProduct__c = product3.Id; quotesItem2.QUANTITY__c = 22; quotesItem2.AMOUNT__c = 22; quotesItem2.RATE__c = 222; quotesItem2.TAX_AMT__c = 222; insert quotesItem2; Mail_Merge__c mailMerge = new Mail_Merge__c(); mailMerge.Quotes__c = quotes.Id; insert mailMerge; PageReference page = new PageReference('/apex/NEWCreateSWOQuote?Id='+quotes.Id); System.Test.setCurrentPage(page); NEWCreateSWOQuoteController controller = new NEWCreateSWOQuoteController(); controller.init(); controller.UnabletoEdit(); controller.Editbtn(); controller.Save(); } }