@isTest
|
private class AssetWhereAbout2BatchTest {
|
@testSetup
|
private static void init(){
|
|
List<Product2> prs = new List<Product2>();
|
|
Product2 pr1 = new Product2(
|
Name = 'aiueo商品1_name',
|
ProductCode = 'OT1',
|
Asset_Model_No__c = 'aiueo商品12345678901234567890123456789012345678901234567890123456789012345678901234567890',
|
IsActive = true,
|
SFDA_Status__c = '有効'
|
);
|
prs.add(pr1);
|
Product2 pr2 = new Product2(
|
Name = 'aiueo商品2_name',
|
ProductCode = 'OT2',
|
Asset_Model_No__c = 'aiueo商品2',
|
IsActive = false, // 同期されない
|
SFDA_Status__c = '不要'
|
);
|
prs.add(pr2);
|
Product2 pr3 = new Product2(
|
Name = 'aiueo商品3_name',
|
ProductCode = 'OT3',
|
Asset_Model_No__c = 'aiueo商品3',
|
IsActive = true,
|
SFDA_Status__c = '準備中'
|
);
|
prs.add(pr3);
|
insert prs;
|
|
Product_Set__c ps1 = new Product_Set__c();
|
ps1.Name = 'セット品1';
|
ps1.Product_Set_CD__c = '111111';
|
ps1.Description__c = '説明';
|
ps1.Qty__c = 10;
|
//ps1.Valid__c = true;
|
ps1.Valid_Date__c = date.today().addDays(-5);
|
insert ps1;
|
|
Product_Set_Detail__c psd1 = new Product_Set_Detail__c();
|
psd1.Product_Set__c = ps1.id;
|
psd1.Price__c = 100;
|
psd1.Quantity__c = 10;
|
psd1.Product__c = pr1.id;
|
insert psd1;
|
|
Product_Set_Detail__c psd2 = new Product_Set_Detail__c();
|
psd2.Product_Set__c = ps1.id;
|
psd2.Price__c = 100;
|
psd2.Quantity__c = 10;
|
psd2.Product__c = pr3.id;
|
insert psd2;
|
|
List<Product2__c> prcs = [select Id from Product2__c where Product2__c in :prs];
|
|
|
pr3 = [select Id from Product2 where Id = :pr3.Id];
|
pr3.SFDA_Status__c = '停止';
|
update pr3;
|
prcs = [select Id from Product2__c where Product2__c in :prs];
|
System.assertEquals(2, prcs.size());
|
pr2 = [select Id from Product2 where Id = :pr2.Id];
|
pr2.IsActive = true;
|
update pr2;
|
prcs = [select Id, Name, Name_Text__c, OT_CODE_Text__c from Product2__c where Product2__c in :prs order by Product2__c.Name];
|
|
System.assertEquals('aiueo商品1234567890123456789012345678901234567890123456789012345678901234567890123', prcs[0].Name);
|
System.assertEquals('aiueo商品2', prcs[1].Name);
|
System.assertEquals('aiueo商品3', prcs[2].Name);
|
System.assertEquals('aiueo商品1_name', prcs[0].Name_Text__c);
|
System.assertEquals('aiueo商品2_name', prcs[1].Name_Text__c);
|
System.assertEquals('aiueo商品3_name', prcs[2].Name_Text__c);
|
System.assertEquals('OT1', prcs[0].OT_CODE_Text__c);
|
System.assertEquals('OT2', prcs[1].OT_CODE_Text__c);
|
System.assertEquals('OT3', prcs[2].OT_CODE_Text__c);
|
|
pr1.SFDA_Status__c = '新製品申請中';
|
pr2.SFDA_Status__c = '準備中';
|
pr3.SFDA_Status__c = '有効(再申請中)';
|
update new Product2[] {pr1, pr2, pr3};
|
prcs = [select Id from Product2__c where Product2__c in :prs];
|
|
|
//delete pr3;
|
prcs = [select Id from Product2__c where Product2__c in :prs];
|
System.assertEquals(3, prcs.size());
|
|
List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
|
if (rectCo.size() == 0) {
|
return;
|
}
|
List<RecordType> rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc];
|
if (rectDpt.size() == 0) {
|
return;
|
}
|
Account company1 = new Account();
|
company1.RecordTypeId = rectCo[0].Id;
|
company1.Name = '病院テスト1';
|
List<Account> hps = new Account[]{company1};
|
insert hps;
|
|
List<Account> 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 new Account[] {depart1};
|
|
Asset ast1 = new Asset();
|
ast1.SerialNumber = 'abcdefg';
|
ast1.Name = '测试资产1';
|
ast1.AccountId = depart1.Id;
|
ast1.Department_Class__c = dc1s[0].Id;
|
ast1.Hospital__c = company1.Id;
|
ast1.Product2Id = pr1.Id;
|
ast1.Guarantee_period_for_products__c = Date.today();
|
ast1.InstallDate = Date.today();
|
//ast1.Manage_type__c = '个体管理';
|
ast1.FirstApproveDate_old__c = Date.today().addDays(-30);
|
ast1.Loaner_accsessary__c = true;
|
ast1.Gurantee_End_day1__c = -100;
|
ast1.IS_Extend_Gurantee_Txt__c = true;
|
ast1.IF_Renewalrate_Target_Asset__c = '0';
|
insert ast1;
|
|
Asset ast2 = new Asset();
|
ast2.SerialNumber = '12345';
|
ast2.Name = '测试资产2';
|
ast2.AccountId = depart1.Id;
|
ast2.Department_Class__c = dc1s[0].Id;
|
ast2.Hospital__c = company1.Id;
|
ast2.Product2Id = pr2.Id;
|
ast2.Guarantee_period_for_products__c = Date.today();
|
ast2.InstallDate = Date.today();
|
//ast2.Manage_type__c = '个体管理';
|
ast2.IS_Extend_Gurantee_Txt__c = true;
|
ast2.Loaner_accsessary__c = true;
|
ast2.Gurantee_End_day1__c = -100;
|
ast2.IF_Renewalrate_Target_Asset__c = '0';
|
insert ast2;
|
|
pr1.Extend_new_product_gurantee__c = true;
|
pr1.Extend_Gurantee_Start__c = Date.today().addDays(-60);
|
pr1.Extend_Gurantee_End__c = Date.today().addDays(60);
|
update pr1;
|
|
pr2.Extend_new_product_gurantee__c = false;
|
update pr2;
|
}
|
static testMethod void testMethod1() {
|
System.Test.startTest();
|
Oly_TriggerHandler.bypass(Product2Handler.Class.getName());
|
Oly_TriggerHandler.bypass(AssetHandler.Class.getName());
|
Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName());
|
Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName());
|
Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName());
|
Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName());
|
Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName());
|
Oly_TriggerHandler.bypass('AssetTrigger');
|
Oly_TriggerHandler.bypass('MaintenanceContractTrigger');
|
Oly_TriggerHandler.bypass('MaintenanceContractAfterUpdate');
|
Oly_TriggerHandler.bypass('MaintenanceContractBeforeDelete');
|
Oly_TriggerHandler.bypass('MaintenanceContractHpDeptUpd');
|
Oly_TriggerHandler.bypass('NFM106Controller');
|
Oly_TriggerHandler.bypass('NFM106Trigger');
|
Oly_TriggerHandler.bypass('AssetRecordTypeUpd');
|
Oly_TriggerHandler.bypass('NFM101Controller');
|
Oly_TriggerHandler.bypass('NFM001Controller');
|
Oly_TriggerHandler.bypass('SyncProduct2');
|
List<Asset> assList = [select id ,name,IS_Extend_Gurantee_Txt__c,Gurantee_End_day1__c,IF_Renewalrate_Target_Asset_F__c,AssetWhereabouts__c from Asset ];
|
system.debug('@@@@@@@@@@@@设备集合='+assList);
|
Database.executeBatch(new AssetWhereAbout2Batch(),200);
|
System.Test.stopTest();
|
}
|
}
|