@isTest private class LoanerOrderStateTest { static void setupTestData() { OlympusCalendar__c oc1 = new OlympusCalendar__c(Date__c = Date.today().addDays(1), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc2 = new OlympusCalendar__c(Date__c = Date.today().addDays(2), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc3 = new OlympusCalendar__c(Date__c = Date.today().addDays(3), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc4 = new OlympusCalendar__c(Date__c = Date.today().addDays(4), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc5 = new OlympusCalendar__c(Date__c = Date.today().addDays(5), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc6 = new OlympusCalendar__c(Date__c = Date.today().addDays(6), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc7 = new OlympusCalendar__c(Date__c = Date.today().addDays(7), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc8 = new OlympusCalendar__c(Date__c = Date.today().addDays(8), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc9 = new OlympusCalendar__c(Date__c = Date.today().addDays(9), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc10 = new OlympusCalendar__c(Date__c = Date.today().addDays(10), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc11 = new OlympusCalendar__c(Date__c = Date.today().addDays(11), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc12 = new OlympusCalendar__c(Date__c = Date.today().addDays(12), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc13 = new OlympusCalendar__c(Date__c = Date.today().addDays(-1), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc14 = new OlympusCalendar__c(Date__c = Date.today().addDays(-2), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc15 = new OlympusCalendar__c(Date__c = Date.today().addDays(-3), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc16 = new OlympusCalendar__c(Date__c = Date.today().addDays(-4), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc17 = new OlympusCalendar__c(Date__c = Date.today().addDays(-5), ChangeToHoliday__c=false, ChangeToWorkday__c=true); insert new OlympusCalendar__c[] {oc1,oc2,oc3,oc4,oc5,oc6,oc7,oc8,oc9,oc10,oc11,oc12,oc13,oc14,oc15,oc16,oc17}; } @isTest static void test_method_one() { setupTestData(); // Implement test code List rectLo = [select Id from RecordType where IsActive = true and SobjectType = 'loaner_application__c' and Name = 'IE']; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE']; // 新建备品借出申请 loaner_application__c loaner = new loaner_application__c(); loaner.Name = 'TEST'; loaner.RecordTypeId = rectLo[0].id; loaner.EC_CODE_1__C = 'DV2-CAMELEONS-CUBE'; loaner.DEMO_PURPOSE__C = '演示'; loaner.Request_shipping_Date__c = Date.today(); loaner.Request_return_Date__c = Date.today(); loaner.Status__c = '已批准'; loaner.Return_Track_Company__c = '物流公司'; //loaner.Return_Trake_Staff__c = '返品人'; insert loaner; // 新建 客户 Account acc = new Account(); acc.RecordTypeId = rectCo[0].Id; acc.Name = '客户テスト1'; acc.DivisionName__c = 'DivisionName__c'; acc.FacilityName__c = 'FacilityName__c'; acc.PostCode__c='000000'; insert acc; // 新建 资产 List In_asset = new List(); Asset asset = new Asset(); asset.Name = 'テスト機器1'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); asset = new Asset(); asset.Name = 'テスト機器2'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); asset = new Asset(); asset.Name = 'テスト機器3'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); insert In_asset; // 新建 借出明细 List In_detail = new List(); loaner_application_detail__c detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[0].id; detail.name = '000'; detail.RAESD_STATUS__C = '已批准'; In_detail.add(detail); detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[1].id; detail.name = '111'; detail.RAESD_STATUS__C = '已批准'; In_detail.add(detail); detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[2].id; detail.name = '222'; detail.RAESD_STATUS__C = '已批准'; detail.Inspection_result_after__c = 'OK'; In_detail.add(detail); insert In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '已出库指示'; In_detail[1].RAESD_STATUS__C = '已出库指示'; In_detail[2].RAESD_STATUS__C = '已出库指示'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '已下架'; In_detail[1].RAESD_STATUS__C = '已下架'; In_detail[2].RAESD_STATUS__C = '已下架'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '出库前已检测'; In_detail[1].RAESD_STATUS__C = '出库前已检测'; In_detail[2].RAESD_STATUS__C = '出库前已检测'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '已出库'; In_detail[1].RAESD_STATUS__C = '已出库'; In_detail[2].RAESD_STATUS__C = '已出库'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '申请者已收货'; In_detail[1].RAESD_STATUS__C = '申请者已收货'; In_detail[2].RAESD_STATUS__C = '申请者已收货'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); system.debug('213123'+loaner.Status__c); Test.startTest(); In_detail[0].RAESD_STATUS__C = '申请者已装机确认'; In_detail[1].RAESD_STATUS__C = '申请者已装机确认'; In_detail[2].RAESD_STATUS__C = '申请者已装机确认'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '已回寄'; In_detail[1].RAESD_STATUS__C = '已回寄'; In_detail[2].RAESD_STATUS__C = '已回寄'; update In_detail; loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); In_detail[0].RAESD_STATUS__C = '欠品中'; In_detail[1].RAESD_STATUS__C = '欠品中'; In_detail[2].RAESD_STATUS__C = '欠品中'; update In_detail; Test.stopTest(); //loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); //In_detail[0].RAESD_STATUS__C = '已回收'; // In_detail[1].RAESD_STATUS__C = '已回收'; // In_detail[2].RAESD_STATUS__C = '已回收'; // update In_detail; //loaner.Status__c = LoanerOrderState.getOrderStater(loaner.Id); } @isTest static void test_method_two() { setupTestData(); // Implement test code List rectLo = [select Id from RecordType where IsActive = true and SobjectType = 'loaner_application__c' and Name = 'IE']; List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE']; // 新建备品借出申请 loaner_application__c loaner = new loaner_application__c(); loaner.Name = 'TEST'; loaner.RecordTypeId = rectLo[0].id; loaner.EC_CODE_1__C = 'DV2-CAMELEONS-CUBE'; loaner.DEMO_PURPOSE__C = '演示'; loaner.Request_shipping_Date__c = Date.today(); loaner.Request_return_Date__c = Date.today(); loaner.Status__c = '已批准'; loaner.Return_Track_Company__c = '物流公司'; //loaner.Return_Trake_Staff__c = '返品人'; insert loaner; // 新建 客户 Account acc = new Account(); acc.RecordTypeId = rectCo[0].Id; acc.Name = '客户テスト1'; acc.DivisionName__c = 'DivisionName__c'; acc.FacilityName__c = 'FacilityName__c'; acc.PostCode__c='000000'; insert acc; // 新建 资产 List In_asset = new List(); Asset asset = new Asset(); asset.Name = 'テスト機器1'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); asset = new Asset(); asset.Name = 'テスト機器2'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); asset = new Asset(); asset.Name = 'テスト機器3'; asset.AccountId = acc.Id; asset.SerialNumber = 'testserial'; In_asset.add(asset); insert In_asset; // 新建 借出明细 List In_detail = new List(); loaner_application_detail__c detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[0].id; detail.name = '000'; detail.RAESD_STATUS__C = '已批准'; In_detail.add(detail); detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[1].id; detail.name = '111'; detail.RAESD_STATUS__C = '已批准'; In_detail.add(detail); detail = new loaner_application_detail__c(); detail.loaner_application__c = loaner.Id; detail.loaner__c = In_asset[2].id; detail.name = '222'; detail.RAESD_STATUS__C = '已批准'; detail.Inspection_result_after__c = 'OK'; In_detail.add(detail); insert In_detail; List loanerId = new List(); loanerId.add(loaner.Id); Map statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); In_detail[0].RAESD_STATUS__C = '已出库指示'; In_detail[1].RAESD_STATUS__C = '已出库指示'; In_detail[2].RAESD_STATUS__C = '已出库指示'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '已下架'; In_detail[1].RAESD_STATUS__C = '已下架'; In_detail[2].RAESD_STATUS__C = '已下架'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '出库前已检测'; In_detail[1].RAESD_STATUS__C = '出库前已检测'; In_detail[2].RAESD_STATUS__C = '出库前已检测'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '已出库'; In_detail[1].RAESD_STATUS__C = '已出库'; In_detail[2].RAESD_STATUS__C = '已出库'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '申请者已收货'; In_detail[1].RAESD_STATUS__C = '申请者已收货'; In_detail[2].RAESD_STATUS__C = '已回寄'; In_detail[2].Asset_Return_Date__c = Date.today(); In_detail[2].Receipt_Status__c = 'NG'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '申请者已装机确认'; In_detail[1].RAESD_STATUS__C = '申请者已装机确认'; In_detail[2].RAESD_STATUS__C = '申请者已装机确认'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug('===='+loaner.Status__c); In_detail[0].RAESD_STATUS__C = '已回寄'; In_detail[1].RAESD_STATUS__C = '已回寄'; In_detail[2].RAESD_STATUS__C = '已回寄'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '欠品中'; In_detail[1].RAESD_STATUS__C = '欠品中'; In_detail[2].RAESD_STATUS__C = '欠品中'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); In_detail[0].RAESD_STATUS__C = '已回收'; In_detail[1].RAESD_STATUS__C = '已回收'; In_detail[2].RAESD_STATUS__C = '已回收'; update In_detail; statu =LoanerOrderState.getOrderStater1(loanerId); loaner.Status__c =statu.get(loaner.Id); system.debug(loaner.Status__c); } }