@isTest private class LexNewOPDButtonOpportunityTest { private static Id pricebookId = ControllerUtil.getStandardPricebook().Id; static testMethod void method() { Opportunity opp = new Opportunity( Name='Opp', StageName='询价', CloseDate=Date.today().addDays(10), Close_Forecasted_Date__c=Date.today(), CurrencyIsoCode = 'CNY' ); insert opp; // oppLine oppline = new oppLine(); // oppline.opp = opp; // oppline.quoteNum = 1; Id productOlympusProductsRecordTypeId = Schema.SObjectType.Product2.getRecordTypeInfosByDeveloperName().get('OlympusProducts').getRecordTypeId(); Product2 prd1 = new Product2(); prd1.Name = 'Prd1'; prd1.RecordTypeId = productOlympusProductsRecordTypeId; prd1.ProductCode_Ext__c = 'Prd1'; prd1.ProductCode = 'Prd1'; prd1.Important_product__c = true; prd1.Asset_Model_No__c = '1001'; prd1.Important_Rroduct_1GI__c = true; prd1.RentalSubject__c = true; prd1.Fixture_Model_No__c = '1001'; prd1.IsActive = true; insert prd1; Quote q = new Quote( Name = 'quote', OpportunityId = opp.Id, Pricebook2Id = pricebookId ); insert q; opp.Estimation_Id__c = String.valueOf(q.Id); update opp; 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; quoteItem.OppIsLendMark__c = false; insert quoteItem; 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; List proLines = new List(); ProLine proLine1 = new ProLine(); // proLine1.Id = planRE.Id; proLine1.Quantity = 10; proLine1.ProductName = 'CF-H170I1'; proLine1.ProductCode= '1001'; proLine1.ProductModel= '1001'; // proLine1.QuoteNo = proLines.add(proLine1); String jsonRecords = System.JSON.serialize(proLines); LexNewOPDButtonOpportunityController.initCancleSumbit(oPDPlan1.Id); LexNewOPDButtonOpportunityController.initNewOPDButton2(opp.Id); LexNewOPDButtonOpportunityController.initGetQuote(opp.Id); LexNewOPDButtonOpportunityController.createProductTags(jsonRecords,opp.Id); LexNewOPDButtonOpportunityController.initReportSubmit(oPDPlan1.Id); } public class ProLine { // @AuraEnabled // public Id Id { get; set; } @AuraEnabled public Integer Quantity { get; set; } @AuraEnabled public String ProductName { 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; } } public class oppLine { @AuraEnabled public Opportunity opp { get; set; } @AuraEnabled public Integer quoteNum { get; set; } } }