@isTest public class NFM606ControllerTest { @testSetup static void makeTestRepair() { Oly_TriggerHandler.bypass('UserProfileHandler'); Oly_TriggerHandler.bypass('ContactTriggerHandler'); // 医院的记录类型 List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Hp']; // 战略科室 消化科的记录类型 List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_Class_GI']; // 消化科的记录类型 List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_GI']; // 经销商的记录类型 List Agency = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency']; // 创建经销商 Account company = new Account(); company.RecordTypeId = Agency[0].Id; company.Name = 'NFM601'; upsert company; Contact contact = new Contact(); contact.AccountId = company.Id; contact.FirstName = '責任者'; contact.LastName = 'test1经销商'; contact.recordtypeId = '01210000000QfWi'; // contact.SendToComPlat__c = true; insert contact; // 省 Address_Level__c al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; // 市 Address_Level2__c al2 = new Address_Level2__c(); al2.Level1_Code__c = 'CN-99'; al2.Level1_Sys_No__c = '999999'; al2.Level1_Name__c = '東京'; al2.Name = '渋谷区'; al2.Level2_Code__c = 'CN-9999'; al2.Level2_Sys_No__c = '9999999'; al2.Address_Level__c = al.id; insert al2; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; hospital.Is_Active__c = '有効'; hospital.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.State_Master__c = al.id; hospital.City_Master__c = al2.id; hospital.Town__c = '东京'; insert hospital; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; Contact contact2 = new Contact(); contact2.AccountId = dep.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; Contact contact3 = new Contact(); contact3.AccountId = strategicDep[0].Id; contact3.Agency_User__c = true; contact3.FirstName = '責任者1'; contact3.LastName = 'test1经销商1'; insert contact3; User us = new User(Test_staff__c = true, LastName = 'hp', FirstName = 'owner', Alias = 'hp', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId =System.Label.ProfileId_SystemAdmin); insert us; BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Log__c = '{"GeDatas":{"Monitoring":{"TransmissionDateTime":"20211222175520","timestamp":null,"Text":"","Tag":"MSGH","sign":null,"Sender":"SFDC","Receiver":"智慧医疗/服务新系统","NumberOfRecord":"1","MessageType":"NFM606","MessageGroupNumber":"20211222175520","appKey":null,"API_TOKEN":"b9b67bf9951b435ecc6b06d4a4bf1813","API_TIME":"1640166920766","API_RANDOM_STR":"BC08858446F0F521"},"GeData":[{"Status":true,"State":null,"ServiceUserId":"","SalesBusinessDivision":null,"PersonManagementCode":"C000132435","Name":"刘璐","Mobile":null,"Hospital":"","Email":null,"Department":"","ContactId":"7612","City":null,"AgentUserType":"管理者","AgentFlag":true,"AgentCode":"0003745093","Account":"AME International GmbH"}]}}'; iflog.Type__c = '606test'; insert iflog; } @isTest static void testCallOut1(){ List conList = [select id from Contact]; Test.startTest(); List idList = new List(); for(Contact con : conList){ idList.add(con.Id); } BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Log__c = 'test start \n'; insert iflog; NFM606Controller.callout(iflog.Id,idList); Test.stopTest(); } @isTest static void testCallOut1_1(){ List Agency = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency']; // 创建经销商 Account company1 = new Account(); company1.RecordTypeId = Agency[0].Id; company1.Name = 'NFM606'; upsert company1; Contact contact111 = new Contact(); contact111.AccountId = company1.Id; contact111.MobilePhone = '11111111111'; contact111.Isactive__c = '123'; contact111.FirstName = '責任者'; contact111.LastName = 'test1经销商'; contact111.recordtypeId = '01210000000QfWi'; insert contact111; Test.startTest(); List idList = new List(); idList.add(contact111.Id); BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Log__c = '{"GeDatas":{"Monitoring":{"TransmissionDateTime":"20211222175520","timestamp":null,"Text":"","Tag":"MSGH","sign":null,"Sender":"SFDC","Receiver":"智慧医疗/服务新系统","NumberOfRecord":"1","MessageType":"NFM606","MessageGroupNumber":"20211222175520","appKey":null,"API_TOKEN":"b9b67bf9951b435ecc6b06d4a4bf1813","API_TIME":"1640166920766","API_RANDOM_STR":"BC08858446F0F521"},"GeData":[{"Status":true,"State":null,"ServiceUserId":"","SalesBusinessDivision":null,"PersonManagementCode":"C000132435","Name":"刘璐","Mobile":null,"Hospital":"","Email":null,"Department":"","ContactId":"7612","City":null,"AgentUserType":"管理者","AgentFlag":true,"AgentCode":"0003745093","Account":"AME International GmbH"}]}}'; iflog.Type__c = '606test'; insert iflog; NFM606Controller.callout(iflog.Id,idList); Test.stopTest(); } // 手动执行 @isTest static void testcallout3(){ BatchIF_Log__c iflog = [select id from BatchIF_Log__c where Type__c = '606test']; NFM606Controller.ManualExecute(iflog.Id); } }