@isTest public with sharing class NFM209RestTest { static testMethod void testMethod1() { // テストデータ List transfers = new List(); BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Account'; transfer.Column__c = 'TradeComplianceStatus__c'; transfer.External_Value__c = 'W'; transfer.Internal_Value__c = '白名单'; transfers.add(transfer); transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Account'; transfer.Column__c = 'TradeComplianceStatus__c'; transfer.External_Value__c = 'B'; transfer.Internal_Value__c = '黑名单'; transfers.add(transfer); insert transfers; // テストデータ Account company = new Account(); company.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); company.Name = 'NFM209TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_Class_GI').getRecordTypeId(); section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; Account depart = new Account(); depart.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); depart.Name = '*'; depart.Department_Name__c = 'NFM209TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; // company = [select Id, Name,Management_Code_Auto__c from Account // where Id = :company.Id]; company = [select Id, Name from Account where Id = :company.Id]; NFM209Rest.GeDatas GeDatas = new NFM209Rest.GeDatas(); NFM209Rest.GeData GeData = new NFM209Rest.GeData(); GeDatas.GeData = new NFM209Rest.GeData[]{GeData}; Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '01'; // GeData.custCode = company.Management_Code_Auto__c; GeData.complStatus = 'B'; GeData.orgSysId='123'; GeData.glbBusiNo='123'; GeData.custTp='123'; GeData.entityTp='123'; GeData.custName='123'; //System.Test.startTest(); NFMUtil.Monitoring Monitoring = GeDatas.Monitoring; BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM209', GeDatas.GeData); NFM209Rest.executefuture(rowData.Id); rowData = NFMUtil.saveRowData(Monitoring, 'NFM209', GeDatas.GeData); NFM209Rest.executefuture(rowData.Id); } static testMethod void testMethod2() { //Test.startTest(); RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); String JsonMsg = '{"Monitoring":{"TransmissionDateTime":"201812201320","Text":"","Tag":"MSGH","Sender":"SAP","Receiver":"SFDC","NumberOfRecord":"1","MessageType":"NFM117","MessageGroupNumber":"20210000005088"},"GeData":[{"custCode":"8098008","complStatus":"黑名单","orgSysId":"00987","glbBusiNo":"001","custTp":"Person","entityTp":"经销商","custName":"大连东控睿康医疗管理有限公司"}]}'; req.requestURI = 'services/apexrest/NFM209/execute'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response= res; NFM209Rest.execute(); //Test.stopTest(); } static testMethod void testMethod3(){ // テストデータ System.runAs(new User(Id = Userinfo.getUserId())) { Oly_TriggerHandler.bypass(ContactTriggerHandler.class.getName()); Oly_TriggerHandler.bypass(Oly_TriggerHandler.class.getName()); List transfers = new List(); BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Account'; transfer.Column__c = 'TradeComplianceStatus__c'; transfer.External_Value__c = 'W'; transfer.Internal_Value__c = '白名单'; transfers.add(transfer); transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Account'; transfer.Column__c = 'TradeComplianceStatus__c'; transfer.External_Value__c = 'B'; transfer.Internal_Value__c = '黑名单'; transfers.add(transfer); insert transfers; // テストデータ Account company = new Account(); company.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); company.Name = 'NFM209TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_Class_GI').getRecordTypeId(); section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; StaticParameter.EscapeSyncProduct2Trigger = true; StaticParameter.EscapeAccountTrigger = true; Account depart = new Account(); depart.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); depart.Name = '*'; depart.Department_Name__c = 'NFM209TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; Contact contact2 = new Contact(); contact2.AccountId = depart.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; 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.Dept__c='医疗华北营业本部'; user.Use_Start_Date__c = Date.today().addMonths(-6); user.SalesManager__c = UserInfo.getUserId(); user.BuchangApprovalManagerSales__c = UserInfo.getUserId(); user.JingliApprovalManager__c = UserInfo.getUserId(); user.BuchangApprovalManager__c = UserInfo.getUserId(); user.ZongjianApprovalManager__c = UserInfo.getUserId(); Product2 productA = new Product2( Name = 'テスト商品', Fixture_Model_No__c = 'n01'); insert productA; Fixture_Set__c fixtures1 = new Fixture_Set__c(); fixtures1.Name = 'set1'; fixtures1.Loaner_name__c = 'name1'; insert new Fixture_Set__c[] {fixtures1}; Fixture_Set_Detail__c fsd1 = new Fixture_Set_Detail__c(); fsd1.Product2__c = productA.Id; fsd1.Fixture_Set__c = fixtures1.Id; fsd1.Is_Body__c = true; fsd1.Is_Optional__c = false; fsd1.UniqueKey__c = fixtures1.Id + ':' + productA.Id; fsd1.SortInt__c = 1; insert new Fixture_Set_Detail__c[] {fsd1}; //备品借出申请 Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Name = 'testra'; raObj.Person_In_Charge__c = user.Id; raObj.applyUser__c = user.Id; raObj.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal()); raObj.Asset_loaner_start_day__c = Date.today(); raObj.Asset_loaner_closed_day__c = Date.today().addDays(10); raObj.Request_return_day__c = Date.today() + 30; raObj.Demo_purpose_text__c = '申请理由Test'; raObj.Request_demo_detail__c = 'IT测试'; raObj.Accsessary__c = '水气按钮'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; raObj.demo_purpose2__c = '其他'; raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = company.Id; raObj.Strategic_dept__c = depart.Id; raObj.Account__c = depart.Id; raObj.Request_shipping_day__c = Date.toDay(); // 希望到货日 raObj.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 // 预定归还日自动生成 预定归还日=(希望到货日+希望借用天数)-1 // raObj.Request_return_day__c = Date.toDay(); // 预定归还日 // B.OLY_OCM-669 入力规则: 希望借用天数不能为空 raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = contact2.Id; insert raObj; Rental_Apply_Equipment_Set__c raesObj = new Rental_Apply_Equipment_Set__c(); raesObj.Rental_Apply__c = raObj.Id; raesObj.Fixture_Set__c = fixtures1.Id; raesObj.Cancel_Select__c = false; raesObj.Rental_Start_Date__c = Date.toDay(); raesObj.Rental_End_Date__c = Date.toDay(); raesObj.IndexFromUniqueKey__c = 1; raesObj.UniqueKey__c = '1:'+ fixtures1.Id + ':1'; insert raesObj; Rental_Apply_Equipment_Set_Detail__c raesdObj1 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj1.Rental_Apply__c = raObj.Id; raesdObj1.Fixture_Set_Detail__c = fsd1.Id; raesdObj1.Rental_Num__c = 1; raesdObj1.Queue_Number__c = null; raesdObj1.Is_Body__c = true; raesdObj1.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj1.IndexFromUniqueKey__c = 1; raesdObj1.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsd1.Id + ':1'; raesdObj1.FSD_OneToOneAccessory_Cnt__c = 2; raesdObj1.FSD_Is_Optional__c = false; raesdObj1.FSD_Is_OneToOne__c = false; raesdObj1.ApplyPersonAppended__c = false; raesdObj1.FSD_Fixture_Model_No__c = 'n01'; raesdObj1.Fixture_Model_No_text__c = 'n01'; raesdObj1.Salesdepartment_before__c = '1.华北营业本部'; raesdObj1.Internal_asset_location_before__c = '北京 备品中心'; raesdObj1.Product_category_text__c = 'GI'; raesdObj1.Equipment_Type_text__c = '产品试用'; raesdObj1.Cancel_Select__c = false; insert raesdObj1; // company = [select Id, Name,Management_Code_Auto__c from Account // where Id = :company.Id]; company = [select Id, Name from Account where Id = :company.Id]; NFM209Rest.GeDatas GeDatas = new NFM209Rest.GeDatas(); NFM209Rest.GeData GeData = new NFM209Rest.GeData(); GeDatas.GeData = new NFM209Rest.GeData[]{GeData}; Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '01'; // GeData.custCode = company.Management_Code_Auto__c; GeData.complStatus = 'B'; GeData.orgSysId='123'; GeData.glbBusiNo='123'; GeData.custTp='123'; GeData.entityTp='123'; GeData.custName='123'; //System.Test.startTest(); NFMUtil.Monitoring Monitoring = GeDatas.Monitoring; BatchIF_Log__c rowData = NFMUtil.saveRowData(Monitoring, 'NFM209', GeDatas.GeData); NFM209Rest.executefuture(rowData.Id); rowData = NFMUtil.saveRowData(Monitoring, 'NFM209', GeDatas.GeData); NFM209Rest.executefuture(rowData.Id); } } }