@isTest private class LexOPDPlanProdControllerTest { private static Id pricebookId = ControllerUtil.getStandardPricebook().Id; static testMethod void init() { RecordType rectCam = [SELECT Id FROM RecordType WHERE IsActive = true AND SobjectType = 'Campaign' AND DeveloperName = 'ServiceEngineerTraining']; Opportunity opp = new Opportunity( Name='Opp', StageName='引合', CloseDate=Date.today().addDays(10), Close_Forecasted_Date__c=Date.today(), CurrencyIsoCode = 'CNY' ); insert opp; Quote q = new Quote( Name = 'quote', OpportunityId = opp.Id, Pricebook2Id = pricebookId ); insert q; opp.Estimation_Id__c = q.Id; // opp.Estimation_Id__c = String.valueOf(Date d) update opp; Product2 prd1 = new Product2(); prd1.Name = 'Prd1'; prd1.ProductCode_Ext__c = 'Prd1'; prd1.ProductCode = 'N4480080'; prd1.Asset_Model_No__c = '1001'; prd1.Important_product__c = true; prd1.Important_Rroduct_1GI__c = true; prd1.RentalSubject__c = true; prd1.Manual_Entry__c = true; insert prd1; PricebookEntry entry = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = prd1.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; insert entry; QuoteLineItem quoteItem = new QuoteLineItem(); quoteItem.Name__c = 'テスト商品'; quoteItem.QuoteId = q.id; quoteItem.Quantity = 1; quoteItem.Cost_Subtotal__c = 0; quoteItem.Cost__c = 200; quoteItem.Item_Order__c = 3; quoteItem.UnitPrice = 10; quoteItem.Product2Id = prd1.id; quoteItem.PricebookEntryId = entry.Id; insert quoteItem; //OPD计划 OPDPlan__c oPDPlan = new OPDPlan__c(); oPDPlan.Status__c = '草案中'; oPDPlan.OPDPlan_ImplementDate__c = Date.today().addMonths(1); oPDPlan.NoOpp_Reason__c = 'HCP对应'; //无询价理由 oPDPlan.OPDLendSortDraft__c = 1; //备品借出优先度 oPDPlan.OPDType__c = '询价'; oPDPlan.RentalReson__c = 'OPD'; insert oPDPlan; oPDPlan.Related_Opportunity1_ID__c = opp.Id; oPDPlan.NoOpp_Reason__c = null; update oPDPlan; OPDPlan__c oPDPlan1 = new OPDPlan__c(); oPDPlan1.Status__c = '计划中'; oPDPlan1.OPDPlan_ImplementDate__c = Date.today().addMonths(1); oPDPlan1.NoOpp_Reason__c = 'HCP对应'; //无询价理由 oPDPlan1.OPDLendSortDraft__c = 1; //备品借出优先度 oPDPlan1.OPDType__c = '事件'; oPDPlan1.Related_Opportunity1_ID__c = opp.Id; oPDPlan1.NoOpp_Reason__c = null; insert oPDPlan1; Plan_Rental_Equipment__c planRE = new Plan_Rental_Equipment__c(); planRE.OPD_Plan__c = oPDPlan.Id; planRE.Rental_Equipment__c = 'CF-H170I'; planRE.Name = 'CF-H170I'; planRE.Rental_Quantity__c = '10'; planRE.ProductCode__c = 'N4480080'; planRE.MDM_Model_No__c = 'CF-H170I'; insert planRE; Campaign cam = new Campaign(); cam.Name = 'cam'; cam.Name2__c = '1234'; cam.RecordTypeId = rectCam.Id; cam.StartDate = Date.today().addDays(-15); cam.EndDate = Date.today().addDays(18); cam.Mailflg_after45__c = true; cam.Mailflg_cancel__c = true; cam.Mailflg_before15__c = true; cam.Mailflg_before7__c = true; cam.Mailflg_after3__c = true; insert cam; List proLines = new List(); ProLine proLine1 = new ProLine(); proLine1.Id = planRE.Id; proLine1.Quantity = 10; proLine1.Name = 'CF-H170I11'; proLine1.ProductCode= 'N44800801'; proLine1.ProductModel= 'CF-H170I11'; ProLine proLine2 = new ProLine(); // proLine2.Id = planRE.Id; proLine2.Quantity = 10; proLine2.Name = 'CF-H170I1'; proLine2.ProductCode= 'N4480080'; proLine2.ProductModel= 'CF-H170I'; proLines.add(proLine2); String jsonRecords = System.JSON.serialize(proLines); List proLines1 = new List(); ProLine proLine3 = new ProLine(); // proLine3.Id = planRE.Id; proLine3.Quantity = 10; proLine3.Name = 'CF-H170I11'; proLine3.ProductCode= '12334'; proLine3.ProductModel= '12334'; proLines1.add(proLine3); String jsonRecords1 = System.JSON.serialize(proLines1); Test.startTest(); LexOPDPlanProdController.init(oPDPlan.Id); LexOPDPlanProdController.initPRE(oPDPlan.Id); LexOPDPlanProdController.initPRE(cam.Id); LexOPDPlanProdController.getEditPermission(oPDPlan.Id); LexOPDPlanProdController.getEditPermission(cam.Id); LexOPDPlanProdController.saveProductData(oPDPlan.Id,jsonRecords); LexOPDPlanProdController.saveProductData(oPDPlan.Id,jsonRecords1); LexOPDPlanProdController.getProductData(oPDPlan.Id,'',jsonRecords,'N448'); LexOPDPlanProdController.getProductData(oPDPlan.Id,'',jsonRecords,''); LexOPDPlanProdController.initGetQuoteProLine(oPDPlan.Id); oPDPlan.RentalReson__c = '模型出借'; update oPDPlan; LexOPDPlanProdController.getProductData(oPDPlan.Id,'',jsonRecords,''); LexOPDPlanProdController.getProductData(oPDPlan.Id,'event',jsonRecords,''); LexOPDPlanProdController.initGetQuoteProLine(oPDPlan.Id); LexOPDPlanProdController.createQuotePREData(jsonRecords,oPDPlan.Id); LexOPDPlanProdController.getPicklistValues('Event','Activity_PurposeEscFSE__c'); LexOPDPlanProdController.initOriginal(oPDPlan.Id); //LexOPDPlanProdController.initGetQuoteProLine(oPDPlan1.Id); Test.stopTest(); } public class ProLine { @AuraEnabled public Id Id { get; set; } @AuraEnabled public Id QuoteId { get; set; } @AuraEnabled public Integer Quantity { get; set; } @AuraEnabled public String Name { get; set; } @AuraEnabled public String ProductCode { get; set; } @AuraEnabled public String ProductModel { get; set; } @AuraEnabled public String QuoteNo { get; set; } @AuraEnabled public String FixtureModel { get; set; } @AuraEnabled public Boolean Selected { get; set; } } }