| @isTest | 
| private class AgencyContactHandlerTest { | 
|   | 
|     public static Account account1 = new Account(); | 
|     public static Account account2 = new Account(); | 
|     public static Agency_Hospital_Link__c aHosLink = new Agency_Hospital_Link__c(); | 
|     public static Agency_Contact__c aContact = new Agency_Contact__c(); | 
|     static testMethod void testBeforeInsert() { | 
|   | 
|         // 取引先 | 
|         account1.Name = 'test1医院'; | 
|         account1.RecordTypeId = '01210000000QemG'; | 
|         insert account1; | 
|   | 
|         account2.Name = 'test1经销商'; | 
|         account2.RecordTypeId = '01210000000Qem1'; | 
|         insert account2; | 
|   | 
|   | 
|         List<Account> accTestList = [SELECT Id, Name FROM Account order by Name]; | 
|         System.debug('GYFaccTestList='+accTestList); | 
|         System.assertEquals(10, accTestList.size()); | 
|         System.assertEquals('test1医院', accTestList[0].Name); | 
|   | 
|         //经销商医院データを作る | 
|         aHosLink.Name = 'test1经销商医院'; | 
|         aHosLink.Hospital__c = account1.Id; | 
|         aHosLink.Agency__c = account2.Id; | 
|         insert aHosLink; | 
|   | 
|         //.客户人员データを作る | 
|         List<Agency_Contact__c> aContactList = new List<Agency_Contact__c>(); | 
|         Agency_Contact__c aContact1 = new Agency_Contact__c(); | 
|         aContact1.Agency_Hospital__c = aHosLink.Id; | 
|         aContact1.Type__c = '医生'; | 
|         aContact1.Name = 'testAgencyUser'; | 
|         aContactList.add(aContact1); | 
|   | 
|         Agency_Contact__c aContact2 = new Agency_Contact__c(); | 
|         aContact2.Agency_Hospital__c = aHosLink.Id; | 
|         aContact2.Type__c = '护士'; | 
|         aContact2.Name = 'testAgencyUser'; | 
|         aContactList.add(aContact2); | 
|         Test.startTest(); | 
|         insert aContactList; | 
|         ////经销商医院名前を変更する | 
|         //aContact.Name = 'testAgencyUser1' | 
|         //update aContact; | 
|   | 
|         Agency_Contact__c clonedAC = aContact1.clone(false,true,false,false); | 
|         clonedAC.Name = 'testAgencyUser2'; | 
|         clonedAC.Agency_ID__c = '000000000000000'; | 
|         clonedAC.Agency_Hospital__c  = null; | 
|         insert clonedAC; | 
|         Test.stopTest(); | 
|     } | 
|     static testMethod void testBeforeUpdate() { | 
|   | 
|         // 取引先 | 
|         account1.Name = 'test1医院'; | 
|         account1.RecordTypeId = '01210000000QemG'; | 
|         insert account1; | 
|   | 
|         account2.Name = 'test1经销商'; | 
|         account2.RecordTypeId = '01210000000Qem1'; | 
|         insert account2; | 
|   | 
|   | 
|         List<Account> accTestList = [SELECT Id, Name FROM Account order by Name]; | 
|         System.debug('GYFaccTestList='+accTestList); | 
|         System.assertEquals(10, accTestList.size()); | 
|         System.assertEquals('test1医院', accTestList[0].Name); | 
|   | 
|         //经销商医院データを作る | 
|         aHosLink.Name = 'test1经销商医院'; | 
|         aHosLink.Hospital__c = account1.Id; | 
|         aHosLink.Agency__c = account2.Id; | 
|         insert aHosLink; | 
|   | 
|         //.客户人员データを作る | 
|         aContact.Agency_Hospital__c = aHosLink.Id; | 
|         aContact.Type__c = '医生'; | 
|         aContact.Name = 'testAgencyUser'; | 
|   | 
|         Agency_Contact__c aContact2 = new Agency_Contact__c(); | 
|         aContact2.Agency_Hospital__c = aHosLink.Id; | 
|         aContact2.Type__c = '医生'; | 
|         aContact2.Name = 'testAgencyUser1'; | 
|         insert aContact2; | 
|   | 
|         Test.startTest(); | 
|         try{ | 
|             insert aContact; | 
|         }catch(Exception e){ | 
|             system.debug('Exception from insert contact:'+e.getMessage()); | 
|         } | 
|         ////.客户人员名前を変更する | 
|         aContact.Name = 'testAgencyUser1'; | 
|         try { | 
|             update aContact; | 
|         } catch (Exception e) { | 
|   | 
|         } | 
|          | 
|         Test.stopTest(); | 
|     } | 
|   | 
|     @isTest static void test_setAgency_Contact_Share_ToRole() { | 
|         MergeAgencyActivityBatchTest.makeNormalData(true); | 
|   | 
|         // assert | 
|         List<Agency_Contact__c> tList = [SELECT Name, Agency_Hospital__r.Agency__c | 
|                 FROM Agency_Contact__c ORDER BY Id LIMIT 2]; | 
|         System.assertEquals(2, tList.size()); | 
|         System.assertEquals(MergeAgencyActivityBatchTest.agency1.Id, tList[0].Agency_Hospital__r.Agency__c); | 
|         System.assertEquals(MergeAgencyActivityBatchTest.agency1.Id, tList[1].Agency_Hospital__r.Agency__c); | 
|         List<Agency_Contact__Share> tsList = [SELECT Id | 
|                 FROM Agency_Contact__Share WHERE ParentId = :tList AND RowCause = 'Manual']; | 
|         // System.assertEquals(2, tsList.size()); | 
|   | 
|         Test.startTest(); | 
|         Delete tList[0]; | 
|         Test.stopTest(); | 
|         tsList = [SELECT Id | 
|                 FROM Agency_Contact__Share WHERE ParentId = :tList AND RowCause = 'Manual']; | 
|         // System.assertEquals(1, tsList.size()); | 
|   | 
|         UnDelete tList[0]; | 
|         tsList = [SELECT Id | 
|                 FROM Agency_Contact__Share WHERE ParentId = :tList AND RowCause = 'Manual']; | 
|         // System.assertEquals(2, tsList.size()); | 
|     } | 
| } |