@isTest private class RentalApplyHpDeptUpdTriggerTest { static testMethod void testUpdate() { // recode type を取得 List recthp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (recthp.size() == 0) { return; } List rectdc = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectdc.size() == 0) { return; } List rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc]; if (rectDpt.size() == 0) { return; } // insert Account hp1 = new Account(); hp1.RecordTypeId = recthp[0].Id; hp1.Name = '病院テスト1'; Account hp2 = new Account(); hp2.RecordTypeId = recthp[0].Id; hp2.Name = '病院テスト2'; insert new Account[] {hp1, hp2}; List dc1s = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp1.Id order by Department_Class_Label__c]; List dc2s = [Select Id, Name, Department_Class_Label__c from Account where Parent.Id = :hp2.Id order by Department_Class_Label__c]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dc1s[0].Id; depart1.Department_Class__c = dc1s[0].Id; depart1.Hospital__c = hp1.Id; Account depart2 = new Account(); depart2.RecordTypeId = rectDpt[1].Id; depart2.Name = '*'; depart2.Department_Name__c = '診療科2'; depart2.ParentId = dc2s[1].Id; depart2.Department_Class__c = dc2s[1].Id; depart2.Hospital__c = hp2.Id; insert new Account[] {depart1, depart2}; Rental_Apply__c ra1 = new Rental_Apply__c(Account__c = depart1.Id , Hospital__c = hp1.Id , Strategic_dept__c =dc1s[0].Id , applyUser__c = UserInfo.getUserId() , direct_send__c = '直送' , direct_shippment_address__c = 'test' , Request_return_day__c = Date.today() + 30 ); Rental_Apply__c ra2 = new Rental_Apply__c(Account__c = depart2.Id , Hospital__c = hp2.Id , Strategic_dept__c =dc2s[1].Id , applyUser__c = UserInfo.getUserId() , direct_send__c = '直送' , direct_shippment_address__c = 'test' , Request_return_day__c = Date.today() + 30 ); insert new Rental_Apply__c[] {ra1, ra2}; //まずひとつ追加 //まずひとつ Rental_Apply__c raChanged = [Select Id, Account__c, Strategic_dept__c, Hospital__c from Rental_Apply__c where Id = :ra1.Id ]; System.assertEquals(raChanged.Strategic_dept__c, dc1s[0].Id); System.assertEquals(raChanged.Hospital__c , hp1.Id); Rental_Apply__c raChanged2 = [Select Id, Account__c, Strategic_dept__c, Hospital__c from Rental_Apply__c where Id = :ra2.Id]; System.assertEquals(raChanged2.Strategic_dept__c, dc2s[1].Id); System.assertEquals(raChanged2.Hospital__c , hp2.Id); ra1.Account__c = depart2.Id; ra2.Account__c = depart1.Id; update new Rental_Apply__c[] {ra1, ra2}; //まずひとつ raChanged = [Select Id, Account__c, Strategic_dept__c, Hospital__c from Rental_Apply__c where Id = :ra1.Id ]; System.assertEquals(raChanged.Strategic_dept__c, dc2s[1].Id); System.assertEquals(raChanged.Hospital__c , hp2.Id); raChanged2 = [Select Id, Account__c, Strategic_dept__c, Hospital__c from Rental_Apply__c where Id = :ra2.Id]; System.assertEquals(raChanged2.Strategic_dept__c, dc1s[0].Id); System.assertEquals(raChanged2.Hospital__c , hp1.Id); } }