@isTest private class lexPCLLostReportLwcControllerTest { @TestSetup static void makeData(){ PCLLostProduct2AssetHandlerTest.setUp(); } static testMethod void testInitCreate(){ List report = [select Id from Lost_cancel_report__c]; delete report; Opportunity opp = [select Id from Opportunity limit 1]; Test.startTest(); lexPCLLostReportLwcController.init('' + opp.Id,'','Create','失单',''); Test.stopTest(); } static testMethod void testInitCreate1(){ Opportunity opp = [select Id from Opportunity limit 1]; Test.startTest(); lexPCLLostReportLwcController.init('' + opp.Id,'','Create','失单',''); Test.stopTest(); } static testMethod void testInitView(){ Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Test.startTest(); lexPCLLostReportLwcController.init('','' + report.Id,'View','',''); Test.stopTest(); } static testMethod void testOther(){ Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Test.startTest(); lexPCLLostReportLwcController.getUserProfileId(); lexPCLLostReportLwcController.getPickList('PCLLostProduct__c','ProductCategory__c'); lexPCLLostReportLwcController.searchBrands(); lexPCLLostReportLwcController.searchBatchIfForProduct(''); lexPCLLostReportLwcController.getNewLostBrand(0); lexPCLLostReportLwcController.getNewLostProduct(0); Test.stopTest(); } static testMethod void testSave(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); Map maps = lexPCLLostReportLwcController.dataEntry(JSON.serialize(conTest2),new List(),new List()); lexPCLLostReportLwcController.searchProduct(conTest2.LostBrands[0].LostProducts[0].LostProductss.Id); System.debug('chenjingwu=>'+ maps.get('error')); Test.stopTest(); } static testMethod void testSubmit(){ Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单' limit 1]; Account depart1 = [select Id from Account where RecordTypeId = '01210000000QemG' limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = depart1.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); lexPCLLostReportLwcController.submit('草案',false,report.Id); Test.stopTest(); } static testMethod void testSubmit1(){ Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单' limit 1]; Account depart1 = [select Id from Account where RecordTypeId = '01210000000QemG' limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = depart1.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); lexPCLLostReportLwcController.submit('草案',false,report.Id); lexPCLLostReportLwcController.submit('草案',false,report.Id); Test.stopTest(); } static testMethod void TestSubmitForApproval2(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); Map maps = lexPCLLostReportLwcController.dataEntry(JSON.serialize(conTest2),new List(),new List()); LostReport re = (LostReport)JSON.deserialize(maps.get('LostReport'), LostReport.class); lexPCLLostReportLwcController.submit('草案',false,re.lostReport.Id); lexPCLLostReportLwcController.submitForApproval(re.lostReport.Id,'','Approve'); lexPCLLostReportLwcController.submitForApproval(re.lostReport.Id,'','Removed'); Test.stopTest(); } static testMethod void TestSubmitForApproval1(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); Map maps = lexPCLLostReportLwcController.dataEntry(JSON.serialize(conTest2),new List(),new List()); LostReport re = (LostReport)JSON.deserialize(maps.get('LostReport'), LostReport.class); lexPCLLostReportLwcController.submit('草案',false,re.lostReport.Id); lexPCLLostReportLwcController.submitForApproval(re.lostReport.Id,'','Reject'); Test.stopTest(); } static testMethod void TestSubmitForApproval5(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); lexPCLLostReportLwcController.submit('草案',false,conTest2.lostReport.Id); lexPCLLostReportLwcController.submitForApproval(conTest2.lostReport.Id,'','Reject'); Test.stopTest(); } static testMethod void TestSubmitForApproval3(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); Map maps = lexPCLLostReportLwcController.dataEntry(JSON.serialize(conTest2),new List(),new List()); LostReport re = (LostReport)JSON.deserialize(maps.get('LostReport'), LostReport.class); lexPCLLostReportLwcController.submit('草案',false,re.lostReport.Id); lexPCLLostReportLwcController.reassignStep(re.lostReport.Id,UserInfo.getUserId()); Test.stopTest(); } static testMethod void TestSubmitForApproval4(){ List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '販売店']; if (rectCo.size() == 0) { return; } Account myAccount2 = new Account(name='Testaccount002',Dealer_discount__c =20,RecordTypeId = rectCo[0].Id,AgentCode_Ext__c = '9999900'); insert myAccount2; // Lost_cancel_report__c report = [select Id from Lost_cancel_report__c where LostType__c = '失单']; Account depart1 = [select Id from Account limit 1]; LostReport conTest2 = new LostReport(); conTest2.lostReport.LostType__c = '失单'; conTest2.lostReport.Opportunity__c = [select Id from Opportunity limit 1].Id; conTest2.LostBrands[0].lostBrand.LostPrice__c = 12; conTest2.LostBrands[0].lostBrand.Lost_reason_main__c = '价格'; conTest2.LostBrands[0].LostProducts[0].LostProductss.Quantity__c =3; conTest2.LostBrands[0].lostBrand.Agency__c = myAccount2.Id; conTest2.LostBrands[0].lostBrand.Lost_By_Company__c = '其他'; conTest2.LostBrands[0].lostBrand.Lost_By_Company_Mannual__c = 'dddddd'; conTest2.LostBrands[0].LostProducts[0].lineNo2 = 0; conTest2.LostBrands[0].LostProducts[0].LostProductss = new PCLLostProduct__c(Quantity__c = 3); Test.startTest(); Map maps = lexPCLLostReportLwcController.dataEntry(JSON.serialize(conTest2),new List(),new List()); LostReport re = (LostReport)JSON.deserialize(maps.get('LostReport'), LostReport.class); lexPCLLostReportLwcController.submit('草案',false,re.lostReport.Id); lexPCLLostReportLwcController.init('','' + re.lostReport.Id,'View','',''); Test.stopTest(); } // 页面的数据结构 public class LostReport { @AuraEnabled public Lost_cancel_report__c lostReport { get; set; } @AuraEnabled public list LostBrands { get; set; } @AuraEnabled public list approvalHistorys { get; set; } public LostReport(){ lostReport = new Lost_cancel_report__c(); LostBrands = new list {new LostBrand(0)}; approvalHistorys = new list(); } public LostReport(Lost_cancel_report__c lostReport){ this.lostReport = lostReport; LostBrands = new list {new LostBrand(0)}; approvalHistorys = new list(); } public LostReport(Lost_cancel_report__c lostReport, list LostBrands){ this.lostReport = lostReport; this.LostBrands = LostBrands; approvalHistorys = new list(); } } public class LostBrand { @AuraEnabled public PCLLostBrand__c lostBrand; @AuraEnabled public Integer lineNo; @AuraEnabled public list LostProducts; @AuraEnabled public Integer ProductSize; @AuraEnabled public Boolean reasonFlag = false; @AuraEnabled public String brandTitle; public LostBrand( integer lineNo ){ lostBrand = new PCLLostBrand__c(); this.lineNo = lineNo; this.brandTitle = '失单品牌' + (lineNo + 1); LostProducts = new list {new PCLLostProducts()}; ProductSize = 1; lostBrand = new PCLLostBrand__c(); } public LostBrand( integer lineNo, list LostProducts ){ lostBrand = new PCLLostBrand__c(); this.lineNo = lineNo; this.brandTitle = '失单品牌' + (lineNo + 1); this.LostProducts = LostProducts; ProductSize = LostProducts.size(); } public LostBrand( integer lineNo, list LostProducts, PCLLostBrand__c lostBrand){ this.lostBrand = lostBrand; this.lineNo = lineNo; this.brandTitle = '失单品牌' + (lineNo + 1); this.LostProducts = LostProducts; ProductSize = LostProducts.size(); } } // add tcm 20211119 start public class PCLLostProducts { @AuraEnabled public Integer lineNo2; @AuraEnabled public PCLLostProduct__c LostProductss; @AuraEnabled public Boolean bool; @AuraEnabled public String productName; @AuraEnabled public List> productOptions = new List>(); public PCLLostProducts() { this.lineNo2 = 0; this.LostProductss=new PCLLostProduct__c(); } public PCLLostProducts(Integer lineNo2) { this.lineNo2 = lineNo2; this.LostProductss=new PCLLostProduct__c(); } public PCLLostProducts(Integer lineNo2,PCLLostProduct__c LostProductss) { this.lineNo2 = lineNo2; this.LostProductss=LostProductss; if (LostProductss.LostProduct__c != null) { this.bool = true; } } } }