@isTest public class MergeAgencyActivityBatchTest { public static Account hospital; public static Account agency1; public static Account agency2; public static Account agency3; public static String oldAgencyCode; public static String newAgencyCode; public static String oldAgencyId15; public static String newAgencyId15; public static Contact contact1; public static Contact contact2; public static User user1; public static User user2; public static User user3; public static Agency_Hospital_Link__c a1HPLink; public static Agency_Hospital_Link__c a2HPLink; public static Agency_Hospital_Link__c a3HPLink; public static Date monday; public static Id Contact_Agency_RT = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); // Normal Data public static void setupNormalData() { makeNormalData(true); } public static void makeNormalData(boolean withAgencyDetail) { System.runAs(new User(Id = UserInfo.getUserId())) { // create 病院 hospital = new Account(); hospital.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); hospital.Name = 'test hospital_1'; // create 经销商 agency1 = new Account(); agency1.Name = 'test1经销商'; agency1.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); agency2 = new Account(); agency2.Name = 'test2经销商'; agency2.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); agency3 = new Account(); agency3.Name = 'test3经销商'; agency3.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); insert new List {hospital, agency1, agency2,agency3}; List agencyList = [SELECT Name, Management_Code__c FROM Account WHERE (Id = :agency1.Id OR Id = :agency2.Id) ORDER BY ID]; oldAgencyCode = agencyList[0].Management_Code__c; oldAgencyId15 = ('' + agencyList[0].Id).mid(0, 15); newAgencyCode = agencyList[1].Management_Code__c; newAgencyId15 = ('' + agencyList[1].Id).mid(0, 15); // 取引先責任者 contact1 = new Contact(); contact1.AccountId = agency1.Id; contact1.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact1.FirstName = '責任者'; contact1.LastName = 'test1经销商'; contact1.Agency_User__c = true; Contact contact12 = new Contact(); contact12.AccountId = agency1.Id; contact12.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact12.FirstName = '社員2'; contact12.LastName = 'test1经销商'; contact12.Agency_User__c = true; contact2 = new Contact(); contact2.AccountId = agency2.Id; contact2.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact2.FirstName = '責任者'; contact2.LastName = 'test2经销商'; contact2.Agency_User__c = true; Contact contact22 = new Contact(); contact22.AccountId = agency2.Id; contact22.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact22.FirstName = '社員2'; contact22.LastName = 'test1经销商'; contact22.Agency_User__c = true; Contact contact23 = new Contact(); contact23.AccountId = agency2.Id; contact23.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact23.FirstName = '社員3'; contact23.LastName = 'test2经销商'; contact23.Agency_User__c = true; Contact contact3 = new Contact(); contact3.AccountId = agency3.Id; contact3.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact3.FirstName = '社員3'; contact3.LastName = 'test2经销商'; contact3.Agency_User__c = true; insert new List {contact1, contact12, contact2, contact22, contact23,contact3}; // User (link to ContactId) Profile p = [SELECT Id FROM Profile WHERE Name = '901_经销商活动系统']; user1 = new User(); user1.ProfileId = p.Id; user1.ContactId = contact1.Id; user1.FirstName = 'ユーザー'; user1.LastName = 'テスト'; user1.Email = 'test_user1@example.com'; user1.Username = 'test_user1@sb1.example.com' + System.now().millisecond(); user1.Alias = 'テユa1'; user1.CommunityNickname = 'tu1' + System.now().millisecond(); user1.PortalRole = 'Worker'; user1.emailencodingkey='UTF-8'; user1.languagelocalekey='zh_CN'; user1.localesidkey='ja_JP'; user1.timezonesidkey='Asia/Shanghai'; user2 = new User(); user2.ProfileId = p.Id; user2.ContactId = contact2.Id; user2.FirstName = 'ユーザー'; user2.LastName = 'テスト'; user2.Email = 'test_user2@example.com'; user2.Username = 'test_user2@sb1.example.com' + System.now().millisecond(); user2.Alias = 'テユa2'; user2.CommunityNickname = 'tu2' + System.now().millisecond(); user2.PortalRole = 'Worker'; user2.emailencodingkey='UTF-8'; user2.languagelocalekey='zh_CN'; user2.localesidkey='ja_JP'; user2.timezonesidkey='Asia/Shanghai'; user3 = new User(); user3.ProfileId = p.Id; user3.ContactId = contact3.Id; user3.FirstName = 'ユーザー'; user3.LastName = 'テスト'; user3.Email = 'test_user3@example.com'; user3.Username = 'test_user3@sb1.example.com' + System.now().millisecond(); user3.Alias = 'テユa3'; user3.CommunityNickname = 'tu3' + System.now().millisecond(); user3.PortalRole = 'Worker'; user3.emailencodingkey='UTF-8'; user3.languagelocalekey='zh_CN'; user3.localesidkey='ja_JP'; user3.timezonesidkey='Asia/Shanghai'; insert new List {user1, user2,user3}; user2 = [SELECT FirstName, LastName, ContactId, Contact.AccountId, UserRoleId FROM User WHERE Id = :user2.Id]; System.assertEquals(agency2.Id, user2.Contact.AccountId); UserRole rolesAcc = [SELECT Id, Name, PortalAccountId, PortalRole FROM UserRole WHERE PortalAccountId = :agency2.Id AND PortalRole = 'Worker']; UserRole rolesUser = [SELECT Id, Name, PortalAccountId, PortalRole FROM UserRole WHERE Id = :user2.UserRoleId]; System.assertEquals(rolesAcc.PortalAccountId, rolesUser.PortalAccountId); System.assertEquals(rolesAcc.PortalRole, rolesUser.PortalRole); System.assertEquals(rolesAcc.Name, rolesUser.Name); System.assertEquals(rolesAcc.Id, rolesUser.Id); } System.runAs(new User(Id = UserInfo.getUserId())) { // UserにPermissionSetを設定 PermissionSet ps = [SELECT ID FROM PermissionSet WHERE Name = 'P002_Partner']; insert new List { new PermissionSetAssignment(AssigneeId = user1.id, PermissionSetId = ps.Id), new PermissionSetAssignment(AssigneeId = user2.id, PermissionSetId = ps.Id) }; } System.runAs(new User(Id = UserInfo.getUserId())) { // 营销关系 a1HPLink = new Agency_Hospital_Link__c(); a1HPLink.Name = 'test1经销商医院'; a1HPLink.Hospital__c = hospital.Id; a1HPLink.Agency__c = agency1.Id; a1HPLink.Agency_Campaign_Obj__c = true; insert a1HPLink; a2HPLink = new Agency_Hospital_Link__c(); a2HPLink.Name = 'test2经销商医院'; a2HPLink.Hospital__c = hospital.Id; a2HPLink.Agency__c = agency2.Id; a2HPLink.Agency_Campaign_Obj__c = true; insert a2HPLink; a3HPLink = new Agency_Hospital_Link__c(); a3HPLink.Name = 'test2经销商医院01'; a3HPLink.Hospital__c = hospital.Id; a3HPLink.Agency__c = agency3.Id; a3HPLink.Agency_Campaign_Obj__c = true; insert a3HPLink; a3HPLink.Agency_Campaign_Obj__c = false; update a3HPLink; if (withAgencyDetail) { //.客户人员 (agency1) Agency_Contact__c aContact1 = new Agency_Contact__c(); aContact1.Agency_Hospital__c = a1HPLink.Id; aContact1.Type__c = '医生'; aContact1.Name = 'testAgency医生'; aContact1.OwnerId = user1.Id; Agency_Contact__c aContact2 = new Agency_Contact__c(); aContact2.Agency_Hospital__c = a1HPLink.Id; aContact2.Type__c = '护士'; aContact2.Name = 'testAgency护士'; aContact2.OwnerId = user1.Id; insert new List {aContact1, aContact2}; // 经销商询价 (agency1) Agency_Opportunity__c agency_opportunity1 = new Agency_Opportunity__c(); agency_opportunity1.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); agency_opportunity1.Name = '引合1'; agency_opportunity1.Hospital_Target__c = hospital.Id; agency_opportunity1.Agency__c = agency1.Id; agency_opportunity1.Agency_Hospital__c = a1HPLink.Id; agency_opportunity1.StageName__c = '还没申请预算'; agency_opportunity1.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity1.OwnerId = user1.Id; Agency_Opportunity__c agency_opportunity2 = new Agency_Opportunity__c(); agency_opportunity2.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); agency_opportunity2.Name = '引合2'; agency_opportunity2.Hospital_Target__c = hospital.Id; agency_opportunity2.Agency__c = agency1.Id; agency_opportunity2.Agency_Hospital__c = a1HPLink.Id; agency_opportunity2.StageName__c = '还没申请预算'; agency_opportunity2.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity2.OwnerId = user1.Id; insert new List {agency_opportunity1, agency_opportunity2}; // .周报一览 (agency1) monday = System.today().toStartofWeek().addDays(1); if (Test.isRunningTest() == true) { OlympusCalendar__c cal1 = new OlympusCalendar__c(Date__c = monday, ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c cal2 = new OlympusCalendar__c(Date__c = monday.addDays(-7), ChangeToHoliday__c=false, ChangeToWorkday__c=true); insert new List {cal1, cal2}; } String dtGTM = String.valueOf(monday); String lastWkGTM = String.valueOf(monday.addDays(-7)); Agency_Report_Header__c agency_report_header1 = WeeklyReportCmp.makeReportHeader(user1.LastName , dtGTM, contact1.Id, contact1.Id + ':' + dtGTM.replaceAll('-', '')); agency_report_header1.OwnerId = user1.Id; Agency_Report_Header__c agency_report_header2 = WeeklyReportCmp.makeReportHeader(user1.LastName , lastWkGTM, contact1.Id, contact1.Id + ':' + lastWkGTM.replaceAll('-', '')); agency_report_header2.OwnerId = user1.Id; insert new List {agency_report_header1, agency_report_header2}; agency_report_header1 = [SELECT Id, Agency_ID__c FROM Agency_Report_Header__c WHERE Id = :agency_report_header1.Id]; System.assertEquals(agency1.Id, agency_report_header1.Agency_ID__c); // .周报m明细 (agency1) ProductTypes__c proType; if (Test.isRunningTest() == true) { proType = new ProductTypes__c(Department_Cateogy__c = 'GI;BF;GS;OTH', Name = '260单镜'); insert proType; } else { proType = [SELECT Id, Department_Cateogy__c, Name FROM ProductTypes__c WHERE Department_Cateogy__c = 'GI;BF;GS;OTH' AND Name = '260单镜']; } Agency_Report__c agency_report1 = WeeklyReportCmp.makeAgencyReport('GI', '信息收集-日常拜访', agency_report_header1.Id , a1HPLink.Id, contact1.Id, '', dtGTM , proType.Id, '', '' , 'Result', '', '', '', '', '', dtGTM); Agency_Report__c agency_report2 = WeeklyReportCmp.makeAgencyReport('GI', '信息收集-日常拜访', agency_report_header2.Id , a1HPLink.Id, contact1.Id, '', lastWkGTM , proType.Id, '', '' , 'Result', '', '', '', '', '', lastWkGTM); insert new List {agency_report1, agency_report2}; } } } /** * @description * 没有AgencyReport时不会报错 */ @isTest static void test_emptyAgencyReport() { makeNormalData(false); // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); } /** * @description * OCSM内部人员所有经销商询价不会修改所有人 */ @isTest static void test_OCSMAgencyOpportunity() { setupNormalData(); Agency_Opportunity__c aOpp = new Agency_Opportunity__c(); aOpp.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); aOpp.Name = '引合3'; aOpp.Hospital_Target__c = hospital.Id; aOpp.Agency__c = agency1.Id; aOpp.Agency_Hospital__c = a1HPLink.Id; aOpp.StageName__c = '还没申请预算'; aOpp.NewOpportunity_Agency_Apply_Status__c = '批准'; aOpp.OwnerId = UserInfo.getUserId(); insert aOpp; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); List aoppList = [select Id, OwnerId from Agency_Opportunity__c where Name = '::引合3']; System.assertEquals(UserInfo.getUserId(), aoppList[0].OwnerId); } /** * @description start error test, forceFlg = false * 没有找到 或 有多条 旧经销商 [' + this.oldAgencyCode + '] 的数据 */ @isTest static void test_oldAgencyCode() { setupNormalData(); //报错的数据 Account agency1 = new Account(AgentCode_Ext__c = oldAgencyCode); agency1.Name = 'test1经销商'; agency1.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); insert agency1; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); System.assertEquals(1, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); System.assertEquals('没有找到 或 有多条 旧经销商 [' + oldAgencyCode + '] 的数据, size=2', MergeAgencyActivityBatch.messagesForTest[0]); } /** * @description start error test, forceFlg = false * 没有找到 或 有多条 新经销商 [' + this.newAgencyCode + '] 的数据 */ @isTest static void test_newAgencyCode() { setupNormalData(); //报错的数据 Account agency2 = new Account(AgentCode_Ext__c = newAgencyCode); agency2.Name = 'test1经销商'; agency2.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); insert agency2; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); System.assertEquals(1, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); System.assertEquals('没有找到 或 有多条 新经销商 [' + newAgencyCode + '] 的数据, size=2', MergeAgencyActivityBatch.messagesForTest[0]); } /** * @description start error test, forceFlg = false * .客户人员 里不可以有 New Agency [' + this.newAgencyCode + '] 的数据 */ @isTest static void test_newAgencyContact() { setupNormalData(); //报错的数据 Agency_Contact__c aContact = new Agency_Contact__c(); aContact.Agency_Hospital__c = a2HPLink.Id; aContact.Type__c = '医生'; aContact.Name = 'testAgency医生'; aContact.OwnerId = user2.Id; insert aContact; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); System.assertEquals(1, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); System.assertEquals('.客户人员 里不可以有 New Agency [' + newAgencyCode + '] 的数据', MergeAgencyActivityBatch.messagesForTest[0]); } /** * @description start error test, forceFlg = false * 经销商询价 里不可以有 New Agency [' + this.newAgencyCode + '] 的数据 */ @isTest static void testStart_newAgencyOpportunity() { setupNormalData(); Agency_Opportunity__c aOpp = new Agency_Opportunity__c(); aOpp.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); aOpp.Name = '引合1'; aOpp.Hospital_Target__c = hospital.Id; aOpp.Agency__c = agency2.Id; aOpp.Agency_Hospital__c = a2HPLink.Id; aOpp.StageName__c = '还没申请预算'; aOpp.NewOpportunity_Agency_Apply_Status__c = '批准'; aOpp.OwnerId = user2.Id; insert aOpp; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); System.assertEquals(1, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); System.assertEquals('经销商询价 里不可以有 New Agency [' + newAgencyCode + '] 的数据', MergeAgencyActivityBatch.messagesForTest[0]); } /** * @description start error test, forceFlg = false * .周报一览 里不可以有 New Agency [' + this.newAgencyCode + '] 的数据 */ @isTest static void test_newAgencyReportHeader() { setupNormalData(); //报错的数据 String dtGTM = String.valueOf(monday); Agency_Report_Header__c arh = WeeklyReportCmp.makeReportHeader(user2.LastName , dtGTM, contact2.Id, contact2.Id + ':' + dtGTM.replaceAll('-', '')); arh.OwnerId = user2.Id; insert new List {arh}; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, false); Database.executeBatch(mBatch); Test.stopTest(); System.assertEquals(1, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); System.assertEquals('.周报一览 里不可以有 New Agency [' + newAgencyCode + '] 的数据', MergeAgencyActivityBatch.messagesForTest[0]); } /** * @description start test, forceFlg = true * // 5. New Contact 件数, 补了一个Contact1 * // 7. Agency_Report_Header の結果を確認 * // 3. Agency_Contact の結果を確認 * // 4. Agency_Opportunity の結果を確認 * // 8. Agency_Report の結果を確認 */ @isTest static void test_newAgencyOpportunity_Force() { setupNormalData(); //报错的数据, 但是 forceFlg = true, 不报错 Agency_Opportunity__c aOpp = new Agency_Opportunity__c(); aOpp.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); aOpp.Name = '引合1'; aOpp.Hospital_Target__c = hospital.Id; aOpp.Agency__c = agency2.Id; aOpp.Agency_Hospital__c = a2HPLink.Id; aOpp.StageName__c = '还没申请预算'; aOpp.NewOpportunity_Agency_Apply_Status__c = '批准'; aOpp.OwnerId = user2.Id; insert aOpp; String dtGTM = String.valueOf(monday); Agency_Report_Header__c arh = WeeklyReportCmp.makeReportHeader(user2.LastName , dtGTM, contact2.Id, contact2.Id + ':' + dtGTM.replaceAll('-', '')); arh.OwnerId = user2.Id; insert new List {arh}; // テストの開始 Test.startTest(); MergeAgencyActivityBatch mBatch = new MergeAgencyActivityBatch(oldAgencyCode, newAgencyCode, true); Database.executeBatch(mBatch); Test.stopTest(); // バッチエラーなし System.assertEquals(0, MergeAgencyActivityBatch.messagesForTest.size(), MergeAgencyActivityBatch.messagesForTest); // 5. New Contact 件数, 补了一个Contact1 List a1ContactList = [SELECT Id, Name, LastName, FirstName, Agency_User__c, AccountId, RecordTypeId FROM Contact WHERE AccountId = :agency1.Id ORDER BY Name]; List a2ContactList = [SELECT Id, Name, LastName, FirstName, Agency_User__c, AccountId, RecordTypeId FROM Contact WHERE AccountId = :agency2.Id ORDER BY Name]; System.assertEquals(2, a1ContactList.size()); System.assertEquals(4, a2ContactList.size()); Contact newContact1; // batchで作った新Contact for (Contact nObj : a2ContactList) { if (nObj.LastName == contact1.LastName && nObj.FirstName == contact1.FirstName) { newContact1 = nObj; } System.assertEquals(agency2.Id, nObj.AccountId); System.assertEquals(true, nObj.Agency_User__c); System.assertEquals(Contact_Agency_RT, nObj.RecordTypeId); } System.assertNotEquals(null, newContact1, a2ContactList); // 7. Agency_Report_Header の結果を確認 List arhList = [SELECT Id, Name, OwnerId , Agency__c, Old_Agency__c, Agency_Person2__c, Old_Agency_Person2__c, Old_OwnerId__c FROM Agency_Report_Header__c WHERE Agency__r.Management_Code__c = :newAgencyCode]; System.assertEquals(3, arhList.size()); Id grpId = MergeAgencyActivityBatch.accIdGrpIdMap(agency2.Id); for (Agency_Report_Header__c nObj : arhList) { if (nObj.Id == arh.Id) { System.assertEquals(agency2.Id, nObj.Agency__c); System.assertEquals(null, nObj.Old_Agency__c); System.assertEquals(contact2.Id, nObj.Agency_Person2__c); System.assertEquals(null, nObj.Old_Agency_Person2__c); System.assertEquals(null, nObj.Old_OwnerId__c); System.assertEquals(user2.Id, nObj.OwnerId); } else { System.assertEquals(agency2.Id, nObj.Agency__c); System.assertEquals(agency1.Id, nObj.Old_Agency__c); System.assertEquals(newContact1.Id, nObj.Agency_Person2__c); System.assertEquals(contact1.Id, nObj.Old_Agency_Person2__c); System.assertEquals(user1.Id, nObj.Old_OwnerId__c); System.assertEquals(user2.Id, nObj.OwnerId); } // List tsList = [SELECT Id, UserOrGroupId // FROM Agency_Report_Header__share WHERE ParentId = :nObj.Id AND RowCause = 'Manual']; // System.assertEquals(1, tsList.size()); // System.assertEquals(grpId, tsList[0].UserOrGroupId); } // 3. Agency_Contact の結果を確認 // List acList = [SELECT Id, Name, OwnerId // , Old_Agency_Hospital__c, Old_Agency_ID__c, Agency_ID__c, Agency_Hospital__c, Old_OwnerId__c // FROM Agency_Contact__c // WHERE Agency_Hospital__r.Agency__r.Management_Code__c = :newAgencyCode]; // System.assertEquals(2, acList.size()); // for (Agency_Contact__c nObj : acList) { // System.assertEquals(agency2.Id, nObj.Agency_ID__c); // System.assertEquals(agency1.Id, nObj.Old_Agency_ID__c); // System.assertEquals(a2HPLink.Id, nObj.Agency_Hospital__c); // System.assertEquals(a1HPLink.Id, nObj.Old_Agency_Hospital__c); // System.assertEquals(user1.Id, nObj.Old_OwnerId__c); // System.assertEquals(user2.Id, nObj.OwnerId); // } // 4. Agency_Opportunity の結果を確認 // List aoppList = [SELECT Id, Name // , Old_OwnerId__c, Old_Agency__c, Old_Agency_Hospital__c, Old_Agency_Hospital_All__c, Old_Agency_Hospital_Target__c, Old_TargetInputKey__c // , OwnerId, Agency__c, Agency_ID__c, Agency_Hospital__c, Agency_Hospital_All__c, Agency_Hospital_Target__c, TargetInputKey__c // FROM Agency_Opportunity__c // WHERE Agency_Hospital_All__r.Agency__r.Management_Code__c = :newAgencyCode]; // System.assertEquals(3, aoppList.size()); // for (Agency_Opportunity__c nObj : aoppList) { // if (nObj.Id == aOpp.Id) { // System.assertEquals(agency2.Id, nObj.Agency__c); // System.assertEquals(null, nObj.Old_Agency__c); // System.assertEquals(a2HPLink.Id, nObj.Agency_Hospital_All__c); // System.assertEquals(null, nObj.Old_Agency_Hospital_All__c); // System.assertEquals(null, nObj.Old_OwnerId__c); // System.assertEquals(user2.Id, nObj.OwnerId); // } else { // System.assertEquals(agency2.Id, nObj.Agency__c); // System.assertEquals(agency1.Id, nObj.Old_Agency__c); // System.assertEquals(a2HPLink.Id, nObj.Agency_Hospital_All__c); // System.assertEquals(a1HPLink.Id, nObj.Old_Agency_Hospital_All__c); // System.assertEquals(user1.Id, nObj.Old_OwnerId__c); // System.assertEquals(user2.Id, nObj.OwnerId); // } // } // 8. Agency_Report の結果を確認 // List arList = [SELECT Id, Name // , Old_Agency__c, Old_Agency_Hospital__c, Old_Person_In_Charge2__c // , Agency__c, Agency_ID__c, Agency_Hospital__c, Person_In_Charge2__c // FROM Agency_Report__c WHERE Agency__c = :agency2.Id]; // System.assertEquals(2, acList.size()); // for (Agency_Report__c nObj : arList) { // System.assertEquals(agency1.Id, nObj.Old_Agency__c); // System.assertEquals(a2HPLink.Id, nObj.Agency_Hospital__c); // System.assertEquals(a1HPLink.Id, nObj.Old_Agency_Hospital__c); // System.assertEquals(newContact1.Id, nObj.Person_In_Charge2__c); // System.assertEquals(contact1.Id, nObj.Old_Person_In_Charge2__c); // } } }