@isTest private class ContactTriggerHandlerTest { public static Account account1 = new Account(); public static Account account2 = new Account(); public static Contact contact1 = new Contact(); public static Contact contact2 = new Contact(); @Testsetup static void setup(){ TestDataUtility.CreatePIPolicyConfiguration('Agency_Contact__c'); } @isTest static void test_method_one() { List HPrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP']; List GIrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_Class_GI']; List DoctorrectCo = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Contact' and DeveloperName = 'Doctor']; if (HPrectCo.size() == 0) { throw new ControllerUtil.myException('not found HP recordtype'); } if (GIrectCo.size() == 0) { throw new ControllerUtil.myException('not found Department_Class_GI recordtype'); } if (DoctorrectCo.size() == 0) { throw new ControllerUtil.myException('not found Doctor recordtype'); } // 取引先 account1.Name = 'test1医院'; // account1.RecordTypeId = '01210000000QemG'; account1.RecordTypeId = HPrectCo[0].Id; insert account1; // 取引先責任者 contact1.AccountId = account1.Id; contact1.FirstName = '責任者'; contact1.LastName = 'test1医院'; Account dept = [select Id from Account where RecordTypeId =: GIrectCo[0].Id]; contact1.Strategic_dept_Class__c = dept.Id; contact1.MobilePhone = '13409507069'; // contact1.RecordTypeId = '01210000000QfWdAAK'; contact1.RecordTypeId = DoctorrectCo[0].Id; contact1.UnifiedI_Contact_ID__c = '100000'; insert contact1; contact2.FirstName = 'test'; contact2.LastName = 'Data'; // contact2.RecordTypeId = '01210000000QfWi'; contact2.RecordTypeId = DoctorrectCo[0].Id; contact2.AccountId = account1.Id; contact2.Agency_User__c = true; contact2.MobilePhone = '18999999999'; insert contact2; MeetingManagement__c a = new MeetingManagement__c(Contact__c =contact1.id ,pollingTime__c = 1, VisitTime__c= 1,InspectTime__c =1, InspectEquipmentTime__c = 1,TeachingTime__c =1 , MaintenanceReportTime__c =1 ); insert a; update contact1; List agency_contact = [Select Id, Name,Contact__c from Agency_Contact__c]; System.assertEquals(agency_contact.size(), 1); System.assertEquals(agency_contact[0].Contact__c, contact1.Id); delete contact1; agency_contact = [Select Id, Name from Agency_Contact__c]; System.assertEquals(agency_contact.size(), 0); } @isTest static void test_method_two(){ List AgencyrectCo1 = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency']; if (AgencyrectCo1.size() == 0) { throw new ControllerUtil.myException('not found AccountAgency recordtype'); } List AgencyrectCo2 = [select Id, Name, DeveloperName from RecordType where IsActive = true and SobjectType = 'Contact' and DeveloperName = 'Agency']; if (AgencyrectCo2.size() == 0) { throw new ControllerUtil.myException('not found ContactAgency recordtype'); } account2.Name = 'test2 经销商'; // account2.RecordTypeId = '01210000000Qem1'; account2.RecordTypeId = AgencyrectCo1[0].Id; insert account2; contact2.FirstName = 'test'; contact2.LastName = 'Data'; // contact2.RecordTypeId = '01210000000QfWi'; contact2.RecordTypeId = AgencyrectCo2[0].Id; contact2.AccountId = account2.Id; contact2.Agency_User__c = true; contact2.MobilePhone = '18999999999'; insert contact2; Contact contact3 = new Contact(); contact3.FirstName = 'test'; contact3.LastName = 'Data'; // contact3.RecordTypeId = '01210000000QfWi'; contact3.RecordTypeId = AgencyrectCo2[0].Id; contact3.AccountId = account2.Id; // contact3.Agency_User__c = true; contact3.Ignore_Same_Name__c = true; contact3.MobilePhone = ''; insert contact3; contact2.MobilePhone = '1899999999A'; update contact2; List accList = [select Dealer_Num__c From account]; system.assertEquals(accList[0].Dealer_Num__c,1); contact2.Agency_User__c = false; update contact2; List accList2 = [select Dealer_Num__c From account]; system.assertEquals(accList2[0].Dealer_Num__c,0); contact2.Agency_User__c = true; update contact2; delete contact2; List accList3 = [select Dealer_Num__c From account]; system.assertEquals(accList3[0].Dealer_Num__c,0); } }