@isTest
|
private class UpdateAgencyOppProductTargetBatchTest {
|
|
public static Account account1 = new Account();
|
public static Account account2 = new Account();
|
public static Contact contact1 = new Contact();
|
public static Contact contact2 = new Contact();
|
public static User user = new User();
|
public static Agency_Hospital_Link__c agency_hospital_link = new Agency_Hospital_Link__c();
|
public static Agency_Contact__c agency_contact = new Agency_Contact__c();
|
public static ProductTypes__c product_types = new ProductTypes__c();
|
public static ProductTypes__c product_types2 = new ProductTypes__c();
|
public static ProductTypes__c product_types3 = new ProductTypes__c();
|
public static OlympusCalendar__c olympus_calendar = new OlympusCalendar__c();
|
|
public static String report_id;
|
public static String report_header_id;
|
|
private static void testInit() {
|
// 取引先
|
account1.Name = 'test1医院';
|
account1.RecordTypeId = '01210000000QemG';
|
insert account1;
|
|
account2.Name = 'test1经销商';
|
account2.RecordTypeId = '01210000000Qem1';
|
insert account2;
|
|
// 取引先責任者
|
contact1.AccountId = account1.Id;
|
contact1.FirstName = '責任者';
|
contact1.LastName = 'test1医院';
|
insert contact1;
|
|
contact2.AccountId = account2.Id;
|
contact2.FirstName = '責任者';
|
contact2.LastName = 'test1经销商';
|
insert contact2;
|
|
// ユーザー
|
Profile p = [select Id from Profile where Name = '901_经销商周报'];
|
user.ProfileId = p.Id;
|
user.ContactId = contact2.Id;
|
user.FirstName = 'ユーザー';
|
user.LastName = 'テスト';
|
user.Email = 'test_user@example.com';
|
user.emailencodingkey='UTF-8';
|
user.languagelocalekey='zh_CN';
|
user.localesidkey='ja_JP';
|
user.timezonesidkey='Asia/Shanghai';
|
user.Username = 'test_user@example.com';
|
user.Alias = 'テユ';
|
user.CommunityNickname = 'テストユーザー';
|
user.Batch_User__c = true;
|
insert user;
|
|
// 代理店医院
|
agency_hospital_link.Name = 'test1代理店医院';
|
agency_hospital_link.Hospital__c = account1.Id;
|
agency_hospital_link.Agency__c = account2.Id;
|
agency_hospital_link.OwnerId = user.Id;
|
insert agency_hospital_link;
|
|
// 先生
|
agency_contact.Name = 'test1医院先生';
|
agency_contact.Doctor_Division1__c = '院长';
|
agency_contact.Type__c = '医生';
|
agency_contact.Agency_Hospital__c = agency_hospital_link.Id;
|
agency_contact.OwnerId = user.Id;
|
insert agency_contact;
|
|
// 製品区分
|
product_types.Name = '製品区分1';
|
product_types.Name2__c = '製品区分1';
|
product_types.OwnerId = user.Id;
|
product_types.Department_Cateogy__c = 'GI;ET;BF;GS;URO;GYN;ENT;OTH';
|
product_types.DeleteFlg__c = false;
|
insert product_types;
|
|
product_types2.Name = '製品区分2';
|
product_types2.Name2__c = '製品区分2';
|
product_types2.OwnerId = user.Id;
|
product_types2.Department_Cateogy__c = 'GI;ET;BF;GS;URO;GYN;ENT;OTH';
|
product_types2.DeleteFlg__c = false;
|
insert product_types2;
|
|
product_types3.Name = '製品区分3';
|
product_types3.Name2__c = '製品区分3';
|
product_types3.OwnerId = user.Id;
|
product_types3.Department_Cateogy__c = 'GI;ET;BF;GS;URO;GYN;ENT;OTH';
|
product_types3.DeleteFlg__c = false;
|
insert product_types3;
|
|
// 引合
|
Agency_Opportunity__c agency_opportunity = new Agency_Opportunity__c();
|
agency_opportunity.RecordTypeId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id;
|
agency_opportunity.Name = '引合1';
|
agency_opportunity.Hospital_Target__c = account1.Id;
|
agency_opportunity.Agency__c = account2.Id;
|
agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id;
|
agency_opportunity.StageName__c = '还没申请预算';
|
agency_opportunity.OwnerId = user.Id;
|
agency_opportunity.Department_Cateogy__c = 'GI';
|
agency_opportunity.Product_Category1__c = product_types2.Id;
|
agency_opportunity.Product_Category2__c = product_types.Id;
|
agency_opportunity.Close_Forecasted_Date__c = Date.today();
|
insert agency_opportunity;
|
|
agency_opportunity = new Agency_Opportunity__c();
|
agency_opportunity.RecordTypeId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id;
|
agency_opportunity.Name = '引合2';
|
agency_opportunity.Hospital_Target__c = account1.Id;
|
agency_opportunity.Agency__c = account2.Id;
|
agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id;
|
agency_opportunity.StageName__c = '还没申请预算';
|
agency_opportunity.OwnerId = user.Id;
|
agency_opportunity.Department_Cateogy__c = 'GI';
|
agency_opportunity.Product_Category1__c = product_types.Id;
|
agency_opportunity.Product_Category2__c = product_types2.Id;
|
agency_opportunity.Product_Category3__c = product_types3.Id;
|
agency_opportunity.Close_Forecasted_Date__c = Date.today();
|
insert agency_opportunity;
|
|
agency_opportunity = new Agency_Opportunity__c();
|
agency_opportunity.RecordTypeId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id;
|
agency_opportunity.Name = '引合3';
|
agency_opportunity.Hospital_Target__c = account1.Id;
|
agency_opportunity.Agency__c = account2.Id;
|
agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id;
|
agency_opportunity.StageName__c = '还没申请预算';
|
agency_opportunity.OwnerId = user.Id;
|
agency_opportunity.Department_Cateogy__c = 'GI';
|
agency_opportunity.Product_Category1__c = product_types.Id;
|
agency_opportunity.Close_Forecasted_Date__c = Date.today();
|
insert agency_opportunity;
|
|
// オリンパスカレンダー
|
olympus_calendar.Date__c = Date.valueOf('2017-04-10');
|
olympus_calendar.OwnerId = user.Id;
|
insert olympus_calendar;
|
}
|
|
@isTest static void test_method_one() {
|
testInit();
|
System.runAs(user) {
|
// 病院リスト取得
|
CreateTargetCmp.createSFTarget(agency_hospital_link.Id, false, new String[]{product_types.Id,product_types2.Id,product_types3.Id}, new String[]{product_types2.Id,'',''},
|
new String[]{product_types3.Id,'',''}, new String[]{product_types.Id,'',''}, new String[]{product_types.Id,'',''}, new String[]{product_types.Id,'',''}, new String[]{product_types.Id,'',''}, new String[]{product_types.Id,'',''}, '150P');
|
|
System.Test.StartTest();
|
UpdateAgencyOppProductTargetBatch b1 = new UpdateAgencyOppProductTargetBatch();
|
Database.executeBatch(b1, 100);
|
System.Test.StopTest();
|
}
|
|
String rid = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Target'].Id;
|
Agency_Opportunity__c target = [select Id,Product_Category_Opp_Count__c from Agency_Opportunity__c where RecordTypeId =:rid and Department_Cateogy__c = 'GI' and Product_Category__c =:product_types.Id];
|
System.assertEquals(3, target.Product_Category_Opp_Count__c);
|
|
target = [select Id,Product_Category_Opp_Count__c from Agency_Opportunity__c where RecordTypeId =:rid and Department_Cateogy__c = 'OTH'];
|
System.assertEquals(null, target.Product_Category_Opp_Count__c);
|
|
target = [select Id,Product_Category_Opp_Count__c,Product_Category__c from Agency_Opportunity__c where RecordTypeId =:rid and Department_Cateogy__c = 'GI' and Product_Category__c =:product_types2.Id];
|
System.assertEquals(2, target.Product_Category_Opp_Count__c);
|
|
target = [select Id,Product_Category_Opp_Count__c,Product_Category__c from Agency_Opportunity__c where RecordTypeId =:rid and Department_Cateogy__c = 'GI' and Product_Category__c =:product_types3.Id];
|
System.assertEquals(1, target.Product_Category_Opp_Count__c);
|
|
|
}
|
|
}
|