@isTest private class RepairProductGuaranteUpdateBatchTest { public static Repair__c repair { get; set;} public static Asset asset { get; set;} private static void init() { Test.StartTest(); List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP']; if (rectHp.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_GI']; if (rectDpt.size() == 0) { return; } Profile p = [select Id from Profile where id = :System.Label.ProfileId_SystemAdmin]; User hpOwner = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', Work_Location__c = '北京', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert hpOwner; User hpOwner2 = new User(Test_staff__c = true, LastName = 'hp2', FirstName = 'owner', Alias = 'hp2', Work_Location__c = '重庆', CommunityNickname = 'hpOwner2', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner2@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); insert hpOwner2; // 病院作成 Account hp = new Account(RecordTypeId = rectHp[0].Id, Name = 'hp', OwnerId = hpOwner.Id); hp.FSE_GI_Main_Leader__c = hpOwner.Id; hp.FSE_SP_Main_Leader__c = hpOwner2.Id; insert hp; Account dc = [select Id, Name, RecordType_DeveloperName__c, Account2__c from Account where ParentId = :hp.Id and RecordType_DeveloperName__c = 'Department_Class_GI']; // 診療科を作る Account dpt = new Account(RecordTypeId = rectDpt[0].Id); dpt.Name = '*'; dpt.Department_Name__c = 'TestDepart'; dpt.ParentId = dc.Id; dpt.Department_Class__c = dc.Id; dpt.Hospital__c = hp.Id; insert dpt; Test.StopTest(); RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ]; Opportunity opp = new Opportunity( Name = 'testOpp1', StageName = '引合', CloseDate = Date.today(), AccountId = dpt.Id, Sales_Root__c = 'OCM直接販売', Competitor__c = 'A', Click_Close_Date__c = null, RecordType = rectOpp ); insert opp; Statu_Achievements__c Sac = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp.id, ContractAmount__c = 0, UnshippedAmount__c = 0, DeliveryDate__c = Date.today(), FirstApproveDate__c = Date.valueOf('2016-08-10') ); insert Sac; Product2 pro1 = new Product2(Name = 'name01', IsActive = true, Family = 'GI', Asset_Model_No__c = 'n01', Serial_Lot_No__c = 'S/N tracing', ProductCode_Ext__c = 'pc01', Manual_Entry__c = false); pro1.Extend_new_product_gurantee__c = true; pro1.Entend_gurantee_period__c = '两年'; pro1.Extend_Gurantee_Start__c = Date.valueOf('2015-01-01'); pro1.Extend_Gurantee_End__c = Date.valueOf('2099-01-04'); insert pro1; // 納入機器を作成する asset = new Asset(); asset.Name = 'テスト機器'; asset.AccountId = dpt.Id; asset.Department_Class__c = dc.Id; asset.Hospital__c = hp.Id; asset.SerialNumber = 'testserial'; asset.Product2Id = pro1.Id; asset.Backorder__c = Sac.Id; asset.InstallDate = Date.today().addDays(-10); asset.Guarantee_period_for_products__c = Date.today().addDays(345); insert asset; // 修理を作成する01 repair = new Repair__c(); repair.Account__c = dpt.Id; repair.Department_Class__c = dc.Id; repair.Hospital__c = hp.Id; repair.Delivered_Product__c = asset.Id; repair.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); // 维修合同判断日がサービス契約の中間辺りの日付 repair.FSE_Work_Location__c = '上海'; repair.NewProductGuarante_Txt__c = '2: 多年保修'; repair.Failure_Occurrence_Date__c = Date.today().addDays(-1); repair.SAP_Transfer_time__c = Datetime.now().addDays(1); insert repair; // Repair__c a = [select id , SAP_Transfer_day__c, CreatedDate,Failure_Occurrence_Date__c // ,NewProductGuarante_Formula__c // from Repair__c where id = : repair.id // ]; // Asset ast = // [select id, Guarantee_period_formula__c, // guarantee_period__c, IS_Extend_Gurantee_Txt__c, // Extend_Gurantee_DateTo_Text__c,warrantyType__c // from asset where id =: asset.Id ]; // throw new ControllerUtil.myException('a:' + a +'\nast'+ast); // system.assertEquals('1', a.NewProductGuarante_Formula__c); //system.assertEquals('1', a.NewProductGuarante_Txt__c); } @isTest static void test_method_one() { // Implement test code init(); //Test.StartTest(); //insert repair; //system.assertEquals('1', repair.NewProductGuarante_Formula__c); //system.assertEquals('1', repair.NewProductGuarante_Txt__c); asset.Guarantee_period_for_products__c = Date.valueOf('2018-06-10'); update asset; Id execBTId = Database.executeBatch(new RepairProductGuaranteUpdateBatch(), 5); //Test.StopTest(); } }