@isTest private class NFM609RestTest { static testMethod void testMethod1() { } @testSetup static void makeTestRepair() { Oly_TriggerHandler.bypass('ContactTriggerHandler'); List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { throw new ControllerUtil.myException('not found 病院 recodetype'); } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 消化科']; if (rectSct.size() == 0) { throw new ControllerUtil.myException('not found 戦略科室分類 呼吸科 recodetype'); } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { throw new ControllerUtil.myException('not found 診療科 消化科 recodetype'); } // テストデータ Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = 'NFM105TestCompany'; upsert company; // Account section = [Select Management_Code__c, Management_Code_Auto__c, Name, Id from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; Account section = [Select Management_Code__c, Name, Id from Account where ParentId = :company.Id and RecordTypeId = :rectSct[0].Id]; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM105TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; Contact con = new Contact(); con.AccountId = depart.Id; con.LastName = '测试0001'; insert con; Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User hpOwner = new User(Test_staff__c = true, LastName = 'hp', Employee_No__c = 'SFDC-02000',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 = p.id); insert hpOwner; // User user = new User(Test_staff__c = true); // user.LastName = '_サンブリッジ'; // user.FirstName = 'う'; // user.Alias = 'う'; // user.Email = 'olympustest03@sunbridge.com'; // user.Username = 'olympustest03@sunbridge.com'; // user.CommunityNickname = 'う'; // user.IsActive = true; // user.EmailEncodingKey = 'ISO-2022-JP'; // user.TimeZoneSidKey = 'Asia/Tokyo'; // user.LocaleSidKey = 'ja_JP'; // user.LanguageLocaleKey = 'ja'; // user.ProfileId = System.Label.ProfileId_SystemAdmin; // user.Job_Category__c = '销售推广'; // user.Province__c = '上海市'; // user.Use_Start_Date__c = Date.today().addMonths(-6); // user.Employee_No__c = 'om008003'; // insert user; Case c = new Case(); c.complaintID__c = 'test202193'; c.Status = '对应中'; insert c; } @isTest static void test_method1() { Test.startTest(); User us = [select Employee_No__c from User where Employee_No__c = 'SFDC-02000']; RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); List < Contact > contactList = [ SELECT Id, AccountId, Account.Name, Account.ParentId, Account.Parent.ParentId, CManageCode__c, Employee_No_manual__c FROM Contact ]; String JsonMsg = '[{"unifiedUserID":"2547",'+ '"trackType":"委托IT HelpDesk对应",'+ '"status":"回答完成&确认",'+ '"remarks":"无",'+ '"questionType":"投诉",'+ '"QuestionList":["于梦辉[2021-12-08 17:03:51]1208测试2;"],'+ '"province":"北京市",'+ '"mngCd":"'+ contactList[0].CManageCode__c +'",'+ '"InquirerType":"客户",'+ '"InquirerDate":"2021-12-08 17:03:51",'+ '"InquireProduct":"1220测试",'+ '"InquirePlatform":null,'+ '"InquireContent":"1208测试2;",'+ '"field":"产品咨询",'+ '"faultJudgment":"解决",'+ '"dealMethod":"当场回答",'+ '"complaintID":"CP-20211208-00009",'+ '"CICstaff":"SFDC-02000",'+ '"attachmentName":"609/4775b661c8f044b98b358be0d3e5e777.zip",'+ '"attachmentfile":"https://albsylfw.s3.cn-northwest-1.amazonaws.com.cn/20211220/14/11/30/5e8cb69e-f935-48f5-825e-b8344d60f6d4.zip",'+ '"AnswerList":["服务二号[2021-12-17 15:02:57]123;"],'+ '"answerDate":"20211217",'+ '"answerContent":"123;"}]'; req.requestURI = 'services/apexrest/NFM609/doPost'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response= res; NFM609Rest.doPost(); Test.setMock(HttpCalloutMock.class, new FiledDownloadHttpCallMock()); Test.stopTest(); } @isTest static void test_method2() { Test.startTest(); //进异常 //User us = [select Employee_No__c from User where Employee_No__c = 'SFDC-02000']; RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); String JsonMsg = '[{"unifiedUserID":"2547",'+ '"trackType":"委托IT HelpDesk对应",'+ '"status":"回答完成&确认",'+ '"remarks":"无",'+ '"questionType":"",'+ '"QuestionList":["于梦辉[2021-12-08 17:03:51]1208测试2;"],'+ '"province":"北京市",'+ '"mngCd":null,'+ '"InquirerType":"客户",'+ '"InquirerDate":"2021-12-08 17:03:51",'+ '"InquireProduct":"",'+ '"InquirePlatform":null,'+ '"InquireContent":"1208测试2;\\n",'+ '"field":"产品咨询",'+ '"faultJudgment":"解决",'+ '"dealMethod":"当场回答",'+ '"complaintID":"",'+ '"CICstaff":"",'+ '"attachmentName":"609/4775b661c8f044b98b358be0d3e5e777.zip",'+ '"attachmentfile":"https://albsylfw.s3.cn-northwest-1.amazonaws.com.cn/20211220/14/11/30/5e8cb69e-f935-48f5-825e-b8344d60f6d4.zip",'+ '"AnswerList":null,'+ '"answerDate":"20211217",'+ '"answerContent":"123;\\n"}]'; // String JsonMsg = '[{"unifiedUserID":"2547","trackType":"委托IT HelpDesk对应","status":"回答完成&确认","remarks":"无","questionType":"投诉","QuestionList":["于梦辉[2021-12-08 17:03:51]1208测试2;"],"province":"北京市","mngCd":null,"InquirerType":"客户","InquirerDate":"2021-12-08 17:03:51","InquireProduct":"1220测试","InquirePlatform":null,"InquireContent":"1208测试2;\n","field":"产品咨询","faultJudgment":"解决","dealMethod":"当场回答","complaintID":"CP-20211208-00009","CICstaff":"SFDC-02000","attachmentName":"609/4775b661c8f044b98b358be0d3e5e777.zip","attachmentfile":"https://albsylfw.s3.cn-northwest-1.amazonaws.com.cn/20211220/14/11/30/5e8cb69e-f935-48f5-825e-b8344d60f6d4.zip","AnswerList":["服务二号[2021-12-17 15:02:57]123;"],"answerDate":"20211217","answerContent":"123;\n"}]'; // String JsonMsg = '[{"unifiedUserID":"sa_ceshi001","trackType":"委托办事处跟进","status":"确认111111","remarks":"备注","questionType":"产品规格","QuestionList":"李师 2021年9月1日09点18分 ???111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111","province":"北京市","mngCd":null,"InquirerType":"客户","InquirerDate":"202101093000","InquireProduct":"01t10000000ThtJAAS","InquirePlatform":"医院客户端","InquireContent":null,"field":"产品咨询","faultJudgment":"故障判断","dealMethod":"应对方法","complaintID":"test202193","CICstaff":"SFDC-02000","attachmentName":null,"attachmentfile":null,"AnswerList":"张三 2021年9月1日09点18分 ???","answerDate":"fs2fss0df21dsfd0109sdfsf3000sfsfsdfds","answerContent":null}]'; req.requestURI = 'services/apexrest/NFM609/doPost'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response= res; NFM609Rest.doPost(); Test.setMock(HttpCalloutMock.class, new FiledDownloadHttpCallMock()); NFM609Schedule.assignOneMinute('RepairSubOrder__c'); Test.stopTest(); } @isTest static void test_method3() { Test.startTest(); //数据为空 RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); String JsonMsg = '[{}]'; req.requestURI = 'services/apexrest/NFM609/doPost'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response= res; NFM609Rest.doPost(); // NFM609Schedule.assignOneMinute('RepairSubOrder__c'); Test.setMock(HttpCalloutMock.class, new FiledDownloadHttpCallMock()); Test.stopTest(); } }