@isTest private class SBGITMRestNewTest { public static Product2 prd1; public static Product2 prd2; public static Product2 prd3; public static Product2 prd4; public static Product2 prd5; static void inittransfersData() { prd1 = new Product2(); prd1.Product_ECCode__c = 'testSBG001'; prd1.ProductCode = 'SBGITMTst1'; prd1.Name = 'testSBG001'; prd1.IsActive = true; prd1.MaterialStatus_one_Start__c = Date.today().addDays(-2); prd1.MaterialStatus_one_End__c = Date.today().addDays(-1); prd1.MaterialStatus_two_Start__c = Date.today().addDays(-3); prd1.MaterialStatus_two_End__c = Date.today().addDays(-1); prd2 = new Product2(); prd2.Product_ECCode__c = 'testSBG002'; prd2.ProductCode = 'SBGITMTst2'; prd2.Name = 'testSBG002'; prd2.IsActive = true; prd2.MaterialStatus_one_Start__c = Date.today().addDays(-2); prd2.MaterialStatus_one_End__c = Date.today().addDays(22); prd2.MaterialStatus_two_Start__c = Date.today().addDays(-3); prd2.MaterialStatus_two_End__c = Date.today().addDays(-1); prd3 = new Product2(); prd3.Product_ECCode__c = 'testSBG002'; prd3.ProductCode = 'SBGITMTst22'; prd3.Name = 'testSBG002'; prd3.IsActive = true; prd3.MaterialStatus_one_Start__c = Date.today().addDays(-2); prd3.MaterialStatus_one_End__c = Date.today().addDays(22); prd3.MaterialStatus_two_Start__c = Date.today().addDays(-3); prd3.MaterialStatus_two_End__c = Date.today().addDays(122); prd4 = new Product2(); prd4.Product_ECCode__c = 'testSBG002'; prd4.ProductCode = 'SBGITMTst222'; prd4.Name = 'testSBG002'; prd4.IsActive = true; prd4.MaterialStatus_one_Start__c = Date.today().addDays(-2); prd4.MaterialStatus_one_End__c = Date.today().addDays(22); prd4.MaterialStatus_two_Start__c = Date.today().addDays(-3); prd4.MaterialStatus_two_End__c = Date.today().addDays(21); prd5 = new Product2(); prd5.Product_ECCode__c = 'testSBG002'; prd5.ProductCode = 'SBGITMTst222'; prd5.Name = 'testSBG002'; prd5.IsActive = true; prd5.MaterialStatus_one_Start__c = Date.today().addDays(-2); prd5.MaterialStatus_one_End__c = Date.today().addDays(22); prd5.MaterialStatus_two_Start__c = Date.today().addDays(-3); prd5.MaterialStatus_two_End__c = Date.today().addDays(21); insert new Product2[] {prd1, prd2,prd3,prd4}; List transfers = new List(); BatchIF_Transfer__c transfer = new BatchIF_Transfer__c(); transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Product2'; transfer.Column__c = 'RadiationType__c'; transfer.External_Value__c = 'D'; transfer.Internal_Value__c = 'Delta'; transfers.add(transfer); transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Product2'; transfer.Column__c = 'RadiationType__c'; transfer.External_Value__c = 'V'; transfer.Internal_Value__c = 'Venta'; transfers.add(transfer); //transfer = new BatchIF_Transfer__c(); //transfer.Table__c = 'Product2'; //transfer.Column__c = 'RadiationType__c'; //transfer.External_Value__c = 'DV'; //transfer.Internal_Value__c = 'Delta+Venta'; //transfers.add(transfer); transfer = new BatchIF_Transfer__c(); transfer.Table__c = 'Product2'; transfer.Column__c = 'RadiationType__c'; transfer.External_Value__c = 'F'; transfer.Internal_Value__c = 'FOX-IQ'; transfers.add(transfer); insert transfers; } @isTest static void testSBGITM_insert() { inittransfersData(); Id pricebookId = ControllerUtil.getStandardPricebook().Id; SBGITMRestNew.GeDatas GeDatas = new SBGITMRestNew.GeDatas(); SBGITMRestNew.GeData GeData = new SBGITMRestNew.GeData(); SBGITMRestNew.GeData GeData2 = new SBGITMRestNew.GeData(); SBGITMRestNew.GeData GeData3 = new SBGITMRestNew.GeData(); SBGITMRestNew.GeData GeData4 = new SBGITMRestNew.GeData(); SBGITMRestNew.GeData GeData5 = new SBGITMRestNew.GeData(); GeDatas.GeData = new SBGITMRestNew.GeData[] { GeData, GeData2,GeData3,GeData4,GeData5 }; // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '11'; // insert GeData.ProductCode = 'SBGITMTst3'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; GeData.Exemption = '1'; GeData.IsRadiant = '1'; GeData.StatusEffectiveDateFrom = '20200522'; GeData.ZCHG_STATUS = '9'; GeData.ProSerial = 'D'; // insert2 GeData2.ProductCode = 'SBGITMTst4'; GeData2.ProductDescription = 'ABCD12345:ABC'; GeData2.ProductStatus = '0'; GeData2.EffectiveDateTo = '20121101'; GeData2.Exemption = '1'; GeData2.IsRadiant = '1'; GeData2.ZCHG_STATUS = '1'; GeData2.ProSerial = 'D'; // insert3 GeData3.ProductCode = 'SBGITMTst5'; GeData3.ProductDescription = 'ABCD123456:ABC'; GeData3.ProductStatus = '0'; GeData3.EffectiveDateTo = '20121101'; GeData3.Exemption = '1'; GeData3.IsRadiant = '1'; GeData3.ZCHG_STATUS = '2'; GeData3.ProSerial = 'D'; // insert4 GeData4.ProductCode = 'SBGITMTst6'; GeData4.ProductDescription = 'ABCD1234567:ABC'; GeData4.ProductStatus = '0'; GeData4.EffectiveDateTo = '20121101'; GeData4.Exemption = '1'; GeData4.IsRadiant = '1'; GeData4.ZCHG_STATUS = '3'; GeData4.ProSerial = 'D'; // insert5 GeData5.ProductCode = 'SBGITMTst7'; GeData5.ProductDescription = ''; GeData5.ProductStatus = '1'; GeData5.EffectiveDateTo = '20121101'; GeData5.Exemption = '1'; GeData5.IsRadiant = '1'; GeData5.StatusEffectiveDateFrom = '20200522'; GeData5.ZCHG_STATUS = '1'; GeData5.ProSerial = 'D'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(GeDatas.Monitoring, 'SBGITM', GeDatas.GeData); SBGITMRestNew.executefuture(rowData.Id); System.Test.stopTest(); Product2[] rslts = [select Id, Name, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = 'ABCD1234']; //System.assertEquals(1, rslts.size()); if (rslts.size() == 1) { System.assertEquals('SBGITMTst3', rslts[0].ProductCode); } rslts = [select Id, ProductCode, Name, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = 'ABCD12345']; //System.assertEquals(1, rslts.size()); if (rslts.size() == 1) { System.assertEquals('SBGITMTst4', rslts[0].ProductCode); System.assertEquals('ABC', rslts[0].Name); } } @isTest static void testSBGITM_update() { inittransfersData(); Id pricebookId = ControllerUtil.getStandardPricebook().Id; SBGITMRestNew.GeDatas GeDatas = new SBGITMRestNew.GeDatas(); SBGITMRestNew.GeData GeData = new SBGITMRestNew.GeData(); GeDatas.GeData = new SBGITMRestNew.GeData[] { GeData }; // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '11'; // insert GeData.ProductCode = 'SBGITMTst1'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; GeData.Exemption = '1'; GeData.IsRadiant = '1'; GeData.StatusEffectiveDateFrom = '20200522'; GeData.ZCHG_STATUS = '3'; GeData.ProSerial = 'D'; // insert GeData.ProductCode = 'SBGITMTst2'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; GeData.Exemption = '1'; GeData.IsRadiant = '1'; GeData.StatusEffectiveDateFrom = '20200522'; GeData.ZCHG_STATUS = '3'; GeData.ProSerial = 'D'; // insert GeData.ProductCode = 'SBGITMTst22'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; GeData.Exemption = '1'; GeData.IsRadiant = '1'; GeData.StatusEffectiveDateFrom = '20200522'; GeData.ZCHG_STATUS = '3'; GeData.ProSerial = 'D'; GeData.ProductCode = 'SBGITMTst222'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; GeData.Exemption = '1'; GeData.IsRadiant = '1'; GeData.StatusEffectiveDateFrom = '20200522'; GeData.ZCHG_STATUS = '3'; GeData.ProSerial = 'D'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(GeDatas.Monitoring, 'SBGITM', GeDatas.GeData); SBGITMRestNew.executefuture(rowData.Id); System.Test.stopTest(); Product2[] rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = 'ABCD1234']; //System.assertEquals(1, rslts.size()); if (rslts.size() == 1) { System.assertEquals('SBGITMTst222', rslts[0].ProductCode); } } @isTest static void testSBGITM_resend() { Id pricebookId = ControllerUtil.getStandardPricebook().Id; SBGITMRestNew.GeDatas GeDatas = new SBGITMRestNew.GeDatas(); SBGITMRestNew.GeData GeData = new SBGITMRestNew.GeData(); GeDatas.GeData = new SBGITMRestNew.GeData[] { GeData }; // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '11'; // insert GeData.ProductCode = 'SBGITMTst1'; GeData.ProductDescription = 'ABCD1234:ABC'; GeData.ProductStatus = '1'; GeData.EffectiveDateTo = '20121101'; System.Test.startTest(); BatchIF_Log__c rowData = NFMUtil.saveRowData(GeDatas.Monitoring, 'SBGITM', GeDatas.GeData); SBGITMRestNew.executefuture(rowData.Id); System.Test.stopTest(); Product2[] rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = 'ABCD1234']; //System.assertEquals(1, rslts.size()); if (rslts.size() == 1) { System.assertEquals('SBGITMTst1', rslts[0].ProductCode); } List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'SBGITM' order by CreatedDate desc]; List rowbl1 = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true order by CreatedDate desc]; System.debug(rowbl1); System.assertEquals(1, rowbl.size()); rowbl[0].retry_cnt__c = 1; update rowbl; SBGITMRestNew.executefuture(rowbl[0].id); List bl = [Select Id, Is_Error__c, Type__c, Log__c, ErrorLog__c, retry_cnt__c from BatchIF_Log__c where Id = :rowbl[0].id]; System.assertEquals(1, bl.size()); // System.assertEquals(1, bl[0].retry_cnt__c); } @isTest static void test_method_Seven() { Test.startTest(); RestRequest req = new RestRequest(); RestResponse res = new RestResponse(); String JsonMsg = '{"GeDatas": {"Monitoring": {"Tag": "MSGH","Sender": 1330,"Receiver": 1592,"MessageType": "SBGITM","MessageGroupNumber": 331591,"NumberOfRecord": 1,"TransmissionDateTime": 201903251115},"GeData": [{"ProductStatus": "1","ProductDescription": "SP-KIT-WEDGE-MQIV1072:111 ","ProductCode":"U8831946","Other3": "","Other2": "","Other1": "","EffectiveDateTo": "99991231"}]}}'; req.requestURI = 'services/apexrest/SBGITM/execute'; req.httpMethod = 'POST'; req.requestBody = Blob.valueof(JsonMsg); RestContext.request = req; RestContext.response = res; SBGITMRestNew.execute(); Test.stopTest(); } }