@isTest private class EventToEventDetailsScheduleTest { @TestSetup static void makeData(){ Date toDayTime = Date.today(); Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'hospitalabc'; hospital.Is_Active__c = '有効'; hospital.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.IF_Coverage_Target_HP__c = '1'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.Town__c = '东京'; Oly_TriggerHandler.bypass('NFM701ControllerHandler'); Oly_TriggerHandler.bypass('UpdateContractAimAmountHandler'); insert hospital; Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', Fixture_Model_No_T__c = 'n01', Maintenance_Price_Year__c = 999, Extend_Gurantee_Start_MD__c = Date.newInstance(toDayTime.year(),3,2), Extend_Gurantee_End_MD__c = Date.newInstance(3999,12,31), Extend_new_product_gurantee_MD__c = true, PartSupplyFinishDate__c = Date.newInstance(toDayTime.year()+2,3,2), ProductCode_Ext__c='pc01',Manual_Entry__c=false,Brand_Name__c='奥林巴斯', Category2__c='本体', Category3__c='电子镜'); insert pro1; Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = System.Label.Account_Asset_FJZ; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; Oly_TriggerHandler.bypass('NFM701ControllerHandler'); Oly_TriggerHandler.bypass('UpdateContractAimAmountHandler'); insert dep; Asset assetA1 = new Asset(Asset_Owner__c = 'Olympus'); assetA1.RecordTypeId = System.Label.Asset_RecordType; assetA1.SerialNumber = 'ass01'; assetA1.Name = 'ass01'; assetA1.AccountId = dep.Id; assetA1.Guarantee_period_for_products__c = toDayTime; assetA1.Hospital__c = hospital.Id; assetA1.Product2Id = pro1.Id; assetA1.Quantity = 1; assetA1.IF_Coverage_Target_Asset__c = '1'; insert assetA1; } static testMethod void myUnitTest() { // List Assets = [SELECT Id,Hospital__c,Product2.ServiceCategory__c,Product2.Maintenance_Price_Year__c // FROM Asset WHERE IF_Coverage_Target_Asset__c = '1']; // This test runs a scheduled job at midnight Sept. 3rd. 2022 String CRON_EXP = '0 0 0 3 9 ? 2023'; //System.Test.startTest(); // Schedule the test job String jobId = system.schedule('EventToEventDetailsScheduleTest', CRON_EXP, new EventToEventDetailsSchedule()); // Get the information from the CronTrigger API object CronTrigger ct = [SELECT Id, CronExpression, TimesTriggered, NextFireTime FROM CronTrigger WHERE id = :jobId]; // Verify the expressions are the same System.assertEquals(CRON_EXP, ct.CronExpression); // Verify the job has not run System.assertEquals(0, ct.TimesTriggered); // Verify the next time the job will run System.assertEquals('2023-09-03 00:00:00', String.valueOf(ct.NextFireTime)); //System.Test.stopTest(); } }