@isTest
|
private class CampaignTriggerBefInsTest {
|
|
// キャンペーン:内部トレーニングのレコードタイプを取得
|
private static final RecordType campaignRC = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Internal_training' AND SObjectType = 'Campaign'];
|
|
// キャンペーン:外部向けのレコードタイプを取得
|
private static final RecordType campaignRCSociety = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Society' AND SObjectType = 'Campaign'];
|
private static final RecordType campaignRCTraining = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Training_event' AND SObjectType = 'Campaign'];
|
private static final RecordType campaignRCService = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Service_trainig' AND SObjectType = 'Campaign'];
|
private static final RecordType ServiceEngineerTraining = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'ServiceEngineerTraining' AND SObjectType = 'Campaign'];
|
|
// キャンペーンメンバー:内部向けのレコードタイプを取得
|
private static final RecordType campaignMemberRC = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Internal_training_participants' AND SObjectType = 'CampaignMember'];
|
|
// キャンペーンメンバー:外部向けのレコードタイプを取得
|
private static final RecordType campaignMemberOuterRC = [SELECT Id, DeveloperName FROM RecordType WHERE DeveloperName = 'Workshop' AND SObjectType = 'CampaignMember'];
|
|
/**
|
* キャンペーンを insertしたときに、キャンペーンメンバーのレコードタイプが強制的に
|
* 決定されていることを確認する。
|
* 内部キャンペーンの場合
|
*/
|
static testMethod void testInsertInternal() {
|
StaticParameter.EscapeCampain =false;
|
StaticParameter.shareToOSCMFlag = false;
|
Campaign target = new Campaign();
|
target.Name = 'test campaign';
|
target.RecordTypeId = campaignRC.Id; // 内部トレーニング
|
target.JingliApprovalManager__c = UserInfo.getUserId();
|
insert target;
|
|
StaticParameter.EscapeCampain =false;
|
|
Campaign target1 = new Campaign();
|
target1.Id = target.Id;
|
target1.Name= 'test1 campaign';
|
update target1;
|
|
|
// CanpaignMemberのレコードタイプを検査
|
target = [SELECT Id, CampaignMemberRecordTypeId FROM Campaign WHERE Id = :target.Id];
|
System.assertEquals( campaignMemberRC.Id, target.CampaignMemberRecordTypeId);
|
}
|
|
/**
|
* キャンペーンを insertしたときに、キャンペーンメンバーのレコードタイプが強制的に
|
* 決定されていることを確認する。
|
* 外部向けの場合 1
|
*/
|
static testMethod void testInsertSociety() {
|
StaticParameter.EscapeCampain =false;
|
StaticParameter.shareToOSCMFlag = false;
|
Campaign target = new Campaign();
|
target.Name = 'test campaign';
|
target.RecordTypeId = campaignRCSociety.Id; // 内部トレーニング
|
target.JingliApprovalManager__c = UserInfo.getUserId();
|
target.HostName__c ='Test01';
|
target.cooperatorCompany__c ='Test02';
|
insert target;
|
|
Campaign target1 = new Campaign();
|
target1.Id = target.Id;
|
target1.Name= 'test1 campaign';
|
update target1;
|
// CanpaignMemberのレコードタイプを検査
|
target = [SELECT Id, CampaignMemberRecordTypeId FROM Campaign WHERE Id = :target.Id];
|
System.assertEquals( campaignMemberOuterRC.Id, target.CampaignMemberRecordTypeId);
|
}
|
|
/**
|
* キャンペーンを insertしたときに、キャンペーンメンバーのレコードタイプが強制的に
|
* 決定されていることを確認する。
|
* 外部向けの場合 2
|
*/
|
static testMethod void testInsertTraining() {
|
StaticParameter.EscapeCampain =false;
|
StaticParameter.shareToOSCMFlag = false;
|
Campaign target = new Campaign();
|
target.Name = 'test campaign';
|
target.RecordTypeId = campaignRCTraining.Id; // 外部トレーニング
|
target.JingliApprovalManager__c = UserInfo.getUserId();
|
insert target;
|
|
Campaign target1 = new Campaign();
|
target1.Id = target.Id;
|
target1.Name= 'test1 campaign';
|
update target1;
|
// CanpaignMemberのレコードタイプを検査
|
target = [SELECT Id, CampaignMemberRecordTypeId FROM Campaign WHERE Id = :target.Id];
|
System.assertEquals( campaignMemberOuterRC.Id, target.CampaignMemberRecordTypeId);
|
}
|
|
/**
|
* キャンペーンを insertしたときに、キャンペーンメンバーのレコードタイプが強制的に
|
* 決定されていることを確認する。
|
* 外部向けの場合 3
|
*/
|
static testMethod void testInsertService() {
|
StaticParameter.EscapeCampain =false;
|
StaticParameter.shareToOSCMFlag = false;
|
Campaign target = new Campaign();
|
target.Name = 'test campaign';
|
target.RecordTypeId = ServiceEngineerTraining.Id; // 外部トレーニング
|
target.JingliApprovalManager__c = UserInfo.getUserId();
|
insert target;
|
Campaign target1 = new Campaign();
|
target1.Id = target.Id;
|
target1.Name= 'test1 campaign';
|
update target1;
|
|
// CanpaignMemberのレコードタイプを検査
|
target = [SELECT Id, CampaignMemberRecordTypeId FROM Campaign WHERE Id = :target.Id];
|
System.assertEquals( campaignMemberOuterRC.Id, target.CampaignMemberRecordTypeId);
|
}
|
|
}
|