@isTest
|
private class rollupToRepairBatchTest {
|
private static Id pricebookId = ControllerUtil.getStandardPricebook().Id;
|
@TestSetup
|
private static void SetUP() {
|
// システム管理者
|
User user = new User(Test_staff__c = true);
|
user.LastName = '_サンブリッジ';
|
user.FirstName = 'う';
|
user.Alias = 'う';
|
user.Email = 'olympusTest03@sunbridge.com';
|
user.Username = 'olympusTest03@sunbridge.com';
|
user.CommunityNickname = 'う';
|
user.IsActive = true;
|
user.EmailEncodingKey = 'ISO-2022-JP';
|
user.TimeZoneSidKey = 'Asia/Tokyo';
|
user.LocaleSidKey = 'ja_JP';
|
user.LanguageLocaleKey = 'ja';
|
user.ProfileId = System.Label.ProfileId_SystemAdmin;
|
user.Job_Category__c = '销售推广';
|
user.Province__c = '上海市';
|
user.Dept__c = '医疗华北营业本部';
|
user.Use_Start_Date__c = Date.today().addMonths(-6);
|
user.SalesManager__c = UserInfo.getUserId();
|
user.BuchangApprovalManagerSales__c = UserInfo.getUserId();
|
user.JingliApprovalManager__c = UserInfo.getUserId();
|
user.BuchangApprovalManager__c = UserInfo.getUserId();
|
user.ZongjianApprovalManager__c = UserInfo.getUserId();
|
user.JingliEquipmentManager__c = UserInfo.getUserId();
|
user.Buzhang_Equipment_Manager__c = UserInfo.getUserId();
|
System.runAs(user) {
|
StaticParameter.rentalApplyIsRunning = true;
|
StaticParameter.EscapeNFM001AgencyContractTrigger = true;
|
ControllerUtil.EscapeNFM001Trigger = true;
|
// 病院を作る
|
Account hospital = new Account();
|
hospital.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'HP'].id;
|
hospital.Name = 'test hospital';
|
insert hospital;
|
|
// 戦略科室を得る
|
List<Account> strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI'];
|
|
// 診療科を作る
|
Account dep = new Account();
|
dep.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'Department_GI'].id;
|
dep.Name = 'test dep';
|
dep.ParentId = strategicDep[0].Id;
|
dep.Department_Class__c = strategicDep[0].Id;
|
dep.Hospital__c = hospital.Id;
|
insert dep;
|
|
//联系人
|
Contact core = new Contact(email = 'jplumber@salesforce.com',
|
firstname = 'Joe',
|
lastname = 'Plumber',
|
accountid = dep.id);
|
insert core;
|
|
// 製品を作る
|
Product2 productA = new Product2( Name = 'テスト商品',
|
Fixture_Model_No__c = 'n01');
|
insert productA;
|
|
// 価格表エントリを作成する
|
PricebookEntry entry = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = productA.Id);
|
entry.UnitPrice = 0;
|
entry.IsActive = true;
|
entry.UseStandardPrice = false;
|
entry.CurrencyIsoCode = 'CNY';
|
entry.Product2Id = productA.Id;
|
insert entry;
|
|
// 納入機器を作成する
|
Asset asset = new Asset();
|
asset.Name = 'テスト機器';
|
asset.AccountId = dep.Id;
|
asset.Department_Class__c = strategicDep[0].Id;
|
asset.Hospital__c = hospital.Id;
|
asset.SerialNumber = 'testserial';
|
insert asset;
|
|
Fixture_Set__c fixtures1 = new Fixture_Set__c();
|
fixtures1.Name = 'set1';
|
fixtures1.Loaner_name__c = 'name1';
|
insert new Fixture_Set__c[] {fixtures1};
|
|
Fixture_Set_Detail__c fsd1 = new Fixture_Set_Detail__c();
|
fsd1.Product2__c = productA.Id;
|
fsd1.Fixture_Set__c = fixtures1.Id;
|
fsd1.Is_Body__c = true;
|
fsd1.Is_Optional__c = false;
|
fsd1.UniqueKey__c = fixtures1.Id + ':' + productA.Id;
|
fsd1.SortInt__c = 1;
|
|
insert new Fixture_Set_Detail__c[] {fsd1};
|
|
|
// 修理做成
|
Repair__c repair01 = new Repair__c();
|
repair01.Account__c = dep.Id;
|
repair01.Department_Class__c = strategicDep[0].Id;
|
repair01.Hospital__c = hospital.Id;
|
repair01.Delivered_Product__c = asset.Id;
|
repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); // 维修合同判断日がサービス契約の中間辺りの日付
|
insert repair01;
|
|
Rental_Apply__c ra = new Rental_Apply__c();
|
ra.Name = 'test';
|
ra.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal());
|
ra.Request_shipping_day__c = Date.today().addDays(3);
|
ra.Hope_Lonaer_date_Num__c = 1;
|
ra.Request_return_day__c = Date.today().addDays(8);
|
ra.Request_approval_time__c = datetime.now().addDays(99);
|
ra.Person_In_Charge__c = user.Id;
|
ra.applyUser__c = user.Id;
|
ra.SalesManager__c = user.Id;
|
ra.Repair__c = repair01.Id;
|
ra.Demo_purpose1__c = '其他';
|
ra.Demo_purpose2__c = '其他';
|
ra.Account__c = dep.Id;
|
ra.Strategic_dept__c = dep.Id;
|
ra.Hospital__c = hospital.Id;
|
ra.Loaner_medical_Staff__c = core.Id;
|
ra.Phone_number__c = '12222222222';
|
ra.Request_approval_time__c = datetime.now().addDays(9);
|
insert ra;
|
|
Rental_Apply_Equipment_Set__c es1 = new Rental_Apply_Equipment_Set__c();
|
es1.Rental_Apply__c = ra.Id;
|
es1.Fixture_Set__c = fixtures1.Id;
|
es1.IndexFromUniqueKey__c = 1;
|
es1.UniqueKey__c = '1:' + fixtures1.Id + ':1';
|
|
insert new Rental_Apply_Equipment_Set__c[] {es1};
|
|
//创建借出配套明细
|
Rental_Apply_Equipment_Set_Detail__c esd1 = new Rental_Apply_Equipment_Set_Detail__c();
|
esd1.Rental_Apply__c = ra.Id;
|
esd1.Fixture_Set_Detail__c = fsd1.Id;
|
esd1.Rental_Num__c = 1;
|
esd1.Queue_Number__c = 0;
|
esd1.Rental_Apply_Equipment_Set__c = es1.Id;
|
esd1.Salesdepartment_before__c = '1.华北营业本部';
|
esd1.Internal_asset_location_before__c = '北京 备品中心';
|
esd1.Product_category_text__c = 'GI';
|
esd1.Equipment_Type_text__c = '产品试用';
|
esd1.IndexFromUniqueKey__c = 1;
|
esd1.UniqueKey__c = '1:' + es1.Id + ':' + fsd1.Id + ':1';
|
esd1.Is_Body__c = true;
|
esd1.Shippment_loaner_time__c = datetime.now().addDays(99);
|
|
insert esd1;
|
}
|
}
|
// 测试修理有效申请
|
@isTest
|
private static void myUnitTestRepair() {
|
System.Test.startTest();
|
Database.executeBatch(new rollupToRepairBatch(), 100);
|
System.Test.stopTest();
|
rollupToRepairBatch batch = new rollupToRepairBatch();
|
batch.failedCount ++;
|
batch.sendFieldEmail();
|
|
}
|
@isTest
|
private static void myUnitTestRepair1() {
|
System.Test.startTest();
|
Database.executeBatch(new rollupToRepairBatch(true), 100);
|
System.Test.stopTest();
|
}
|
@isTest
|
private static void myUnitTestRepair2() {
|
System.Test.startTest();
|
Database.executeBatch(new rollupToRepairBatch(''), 100);
|
System.Test.stopTest();
|
}
|
@isTest
|
private static void myUnitTestRepair3() {
|
list<ID> IDlist = new list<ID>();
|
System.Test.startTest();
|
Database.executeBatch(new rollupToRepairBatch(IDlist), 100);
|
System.Test.stopTest();
|
}
|
}
|