@isTest private class LostCancelReportHandlerTest { @isTest static void test_method_one() { // recode type を取得 List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { throw new ControllerUtil.myException('not found 病院 recodetype'); } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { throw new ControllerUtil.myException('not found 戦略科室分類 recodetype'); } List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { throw new ControllerUtil.myException('not found 診療科 recodetype'); } List rectLost = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Lost_cancel_report__c' and DeveloperName IN ('PCL_Lost_report', 'PCL_Cancel_report') order by DeveloperName desc]; if (rectLost.size() == 0) { throw new ControllerUtil.myException('not found Lost_cancel_report recodetype'); } // insert Account company1 = new Account(); company1.RecordTypeId = rectCo[0].Id; company1.Name = '病院テスト1'; insert company1; List dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = : company1.Id order by Department_Class_Label__c]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dc1s[0].Id; depart1.Department_Class__c = dc1s[0].Id; depart1.Hospital__c = company1.Id; insert depart1; // 商談 Opportunity opp1 = new Opportunity(Name='aiueo', StageName='contact', CloseDate=Date.today(), Hospital__c = company1.Id, Department_Class__c = dc1s[0].Id, AccountId = depart1.Id ); insert opp1; // 失单 Lost_cancel_report__c lcr1 = new Lost_cancel_report__c( Opportunity__c = opp1.Id, RecordTypeId = rectLost[0].Id ); insert lcr1; // 20220720 ljh add start lcr1.Report_Status__c = '申请中'; update lcr1; // 20220720 ljh add edn //test lcr1.Report_Status__c = '批准'; update lcr1; Opportunity opptest = [SELECT Id, Lost_Cancel_Report__c FROM Opportunity WHERE Id =: opp1.Id]; // System.assertEquals(lcr1.Id, opptest.Lost_Cancel_Report__c); } // add tcm 20211212 start //modify by allen 测试类报错 先注释新增testmock 20240112 start // @isTest static void test_method_two() { // // recode type を取得 // List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; // if (rectCo.size() == 0) { // throw new ControllerUtil.myException('not found 病院 recodetype'); // } // List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; // if (rectSct.size() == 0) { // throw new ControllerUtil.myException('not found 戦略科室分類 recodetype'); // } // List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; // if (rectDpt.size() == 0) { // throw new ControllerUtil.myException('not found 診療科 recodetype'); // } // List rectLost = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Lost_cancel_report__c' and DeveloperName IN ('PCL_Lost_report', 'PCL_Cancel_report') order by DeveloperName desc]; // if (rectLost.size() == 0) { // throw new ControllerUtil.myException('not found Lost_cancel_report recodetype'); // } // // insert // Account company1 = new Account(); // company1.RecordTypeId = rectCo[0].Id; // company1.Name = '病院テスト1'; // insert company1; // List dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = : company1.Id order by Department_Class_Label__c]; // Account depart1 = new Account(); // depart1.RecordTypeId = rectDpt[0].Id; // depart1.Name = '*'; // depart1.Department_Name__c = '診療科1'; // depart1.ParentId= dc1s[0].Id; // depart1.Department_Class__c = dc1s[0].Id; // depart1.Hospital__c= company1.Id; // insert depart1; // Account depart2 = new Account(); // depart2.RecordTypeId = rectDpt[0].Id; // depart2.Name = '*111'; // depart2.Department_Name__c = '診療科2'; // depart2.ParentId= dc1s[0].Id; // depart2.Department_Class__c = dc1s[0].Id; // depart2.Hospital__c= company1.Id; // insert depart2; // Account depart3 = new Account(); // depart3.RecordTypeId = '01210000000Qem1'; // depart3.Name = '*'; // depart3.Hospital__c = company1.Id; // insert depart3; // // 询价 // Opportunity opp1 = new Opportunity(Name='opp1', StageName='oppName', CloseDate=Date.today(),Hospital__c = company1.Id,Department_Class__c = dc1s[0].Id,AccountId = depart1.Id); // insert opp1; // // 失单 // Lost_cancel_report__c lcr1 = new Lost_cancel_report__c(Opportunity__c = opp1.Id,RecordTypeId = rectLost[0].Id); // insert lcr1; // //失单品牌1 // PCLLostBrand__c pcllb1=new PCLLostBrand__c(); // pcllb1.LostPrice__c=1332; // pcllb1.Lost_Reason_Sub__c='价格'; //原因次 // pcllb1.Lost_reason_main__c='价格'; //原因主 // pcllb1.Lost_By_Company__c='蛇牌'; //品牌(主) // pcllb1.Agency__c=depart3.Id; //经销商 // pcllb1.Lost_cancel_report__c=lcr1.Id; // //失单品牌2 // PCLLostBrand__c pcllb2=pcllb1.clone(); // pcllb2.Lost_By_Company__c='其他'; //品牌(主) // pcllb2.Lost_By_Company_Mannual__c='失单品牌'; //手动品牌 // pcllb2.Agency__c=depart3.Id; //经销商 // pcllb2.AgencyMannual__c='手动经销商'; // insert new List {pcllb1,pcllb2}; // // 产品 // Product2 pro1 = new Product2(Name='name01', Brand_Name__c='蛇牌',Category5__c='竞争对手',IsActive=true,Family='SP',Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n01',ProductCode_Ext__c='pc01',Manual_Entry__c=false); // Product2 pro2 = new Product2(Name='name02', Brand_Name__c='其他',Category5__c='竞争对手',IsActive=true,Family='SP2',Fixture_Model_No__c='n02',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n02',ProductCode_Ext__c='pc02',Manual_Entry__c=false); // // Product2 pro3 = new Product2(Name='name03',Lost_By_Company__c='其他',IsActive=true,Family='SP3',Fixture_Model_No__c='n03',Serial_Lot_No__c='S/N tracing',Fixture_Model_No_T__c = 'n03',ProductCode_Ext__c='pc03',Manual_Entry__c=false); // // if(NFMUtil.isSandbox()){ // // pro1.RecordTypeId = '0129D000001NacD'; // // pro2.RecordTypeId = '0129D000001NacD'; // // } else { // // pro1.RecordTypeId = '01210000000aMAE'; // // pro2.RecordTypeId = '01210000000aMAE'; // // } // pro1.RecordTypeId = '01210000000aMAE'; // pro2.RecordTypeId = '01210000000aMAE'; // insert new List {pro1,pro2}; // //失单型号 // PCLLostProduct__c pcllp1=new PCLLostProduct__c(); // pcllp1.Quantity__c=2; // pcllp1.LostBrandName__c='蛇牌'; // pcllp1.ProductClass__c='主机'; // pcllp1.ProductCategory__c='4K'; // pcllp1.LostProduct__c=pro1.Id; //产品Id // pcllp1.LostProductMannual__c='失单对手型号(手动)'; //失单对手型号(手动) // pcllp1.PCLLostBrand__c=pcllb1.Id; //询价失单品牌 // PCLLostProduct__c pcllp2=pcllp1.clone(); // pcllp2.LostBrandName__c='其他'; // pcllp2.ProductClass__c='主机'; // pcllp2.ProductCategory__c='4K'; // pcllp2.LostProduct__c=pro2.Id; //产品Id // pcllp2.PCLLostBrand__c=pcllb2.Id; //询价失单品牌 // // PCLLostProduct__c pcllp3=pcllp1.clone(); // // pcllp3.LostBrandName__c='其他'; // // pcllp3.LostProduct__c=pro3.Id; //产品Id // // pcllp3.PCLLostBrand__c=pcllb2.Id; //询价失单品牌 // insert new List {pcllp1,pcllp2}; // //test // lcr1.Report_Status__c = '批准'; // update lcr1; // } @isTest static void testMock(){ LostCancelReportHandler hander = new LostCancelReportHandler(); hander.testMock(); } //modify by allen 测试类报错 先注释新增testmock 20240112 end // add tcm 20211212 end // 20221206 ljh start @isTest static void test_method_three() { // recode type を取得 List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { throw new ControllerUtil.myException('not found 病院 recodetype'); } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { throw new ControllerUtil.myException('not found 戦略科室分類 recodetype'); } List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { throw new ControllerUtil.myException('not found 診療科 recodetype'); } List rectLost = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Lost_cancel_report__c' and DeveloperName IN ('PCL_Lost_report', 'PCL_Cancel_report') order by DeveloperName desc]; if (rectLost.size() == 0) { throw new ControllerUtil.myException('not found Lost_cancel_report recodetype'); } // insert Account company1 = new Account(); company1.RecordTypeId = rectCo[0].Id; company1.Name = '病院テスト1'; insert company1; List dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = : company1.Id order by Department_Class_Label__c]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dc1s[0].Id; depart1.Department_Class__c = dc1s[0].Id; depart1.Hospital__c = company1.Id; insert depart1; // 商談 Opportunity opp1 = new Opportunity(Name='aiueo', StageName='contact', CloseDate=Date.today(), Hospital__c = company1.Id, Department_Class__c = dc1s[0].Id, AccountId = depart1.Id ); insert opp1; // 失单 Lost_cancel_report__c lcr1 = new Lost_cancel_report__c( Opportunity__c = opp1.Id, RecordTypeId = rectLost[0].Id ); insert lcr1; // 20220720 ljh add start lcr1.Report_Status__c = '申请中'; update lcr1; // 20220720 ljh add edn //test lcr1.Report_Status__c = '批准'; update lcr1; Opportunity opptest = [SELECT Id, Lost_Cancel_Report__c FROM Opportunity WHERE Id =: opp1.Id]; delete lcr1; // System.assertEquals(lcr1.Id, opptest.Lost_Cancel_Report__c); } // 20221206 ljh start }