@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); } }