@isTest private class SBG005WebServiceTest { static Product2 testSBG005Init() { Product2 prd = new Product2(); prd.Product_ECCode__c = 'testSBG005'; prd.ProductCode = 'testSBG005'; prd.Name = 'testSBG005'; prd.IsActive = true; insert prd; //Pricebook2 prdbook = new Pricebook2(); Pricebook2 prdbook1 = new Pricebook2( Name = 'testSBG005', ProductSegment__c = 'BS', TradeType__c = 'Taxation', SalesChannel__c = 'dealer', MachineParts__c = 'Machine', isActive = true); insert prdbook1; Pricebook2 prdbook2 = new Pricebook2( Name = 'testSBG005', ProductSegment__c = 'BS', TradeType__c = 'Taxation', SalesChannel__c = 'direct', MachineParts__c = 'Machine', isActive = true); insert prdbook2; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = ControllerUtil.getStandardPricebook().Id; pbe.Product2Id = prd.Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; insert pbe; PricebookEntry pbe1 = new PricebookEntry(); pbe1.Pricebook2Id = ControllerUtil.getStandardPricebook().Id; pbe1.Product2Id = prd.Id; pbe1.UnitPrice = 0; pbe1.CurrencyIsoCode = 'USD'; pbe1.IsActive = true; insert pbe1; return prd; } @isTest static void testSBG005_void(){ testSBG005Init(); // null SBG005WebService.SBG005(null); SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; // Monitoringをセットしない SBG005WebService.SBG005(GeDatas); Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.Monitoring.MessageGroupNumber = nowStr + '01'; // 必須項目をセットしない SBG005WebService.SBG005(GeDatas); // 商品コードが存在しない GeDatas.Monitoring.MessageGroupNumber = nowStr + '02'; GeData.ProductCode = 'testSBG005X'; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); Product2[] rslts = [select Id from Product2 where Product_ECCode__c = :GeData.ProductCode]; System.assertEquals(0, rslts.size()); } @isTest static void testSBG005_update() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); } @isTest static void testSBG005_date() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_dateA() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; GeData.DealerDistinguish = 'A'; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_date0() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_date1() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121203'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131201', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); Date dateFrom2 = NFMUtil.parseStr2Date('20131202', false); Date dateTo2 = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1__c = dateFrom; pbe.EffectiveDateTo1__c = dateTo; pbe.EffectiveDateFrom2__c = dateFrom2; pbe.EffectiveDateTo2__c = dateTo2; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_date2() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121202'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131201', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1__c = dateFrom; pbe.EffectiveDateTo1__c = dateTo; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_dateA0() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; GeData.DealerDistinguish = 'A'; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_dateA1() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121203'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; GeData.DealerDistinguish = 'A'; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131201', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); Date dateFrom2 = NFMUtil.parseStr2Date('20131202', false); Date dateTo2 = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1_sales_A__c = dateFrom; pbe.EffectiveDateTo1_sales_A__c = dateTo; pbe.EffectiveDateFrom2_sales_A__c = dateFrom2; pbe.EffectiveDateTo2_sales_A__c = dateTo2; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_dateA2() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121202'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; GeData.DealerDistinguish = 'A'; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131201', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1_sales_A__c = dateFrom; pbe.EffectiveDateTo1_sales_A__c = dateTo; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_date3() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121202'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131201', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1__c = dateFrom; pbe.EffectiveDateTo1__c = dateTo; pbe.EffectiveDateFrom2__c = dateFrom; pbe.EffectiveDateTo2__c = dateTo; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_dateA3() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121203'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; GeData.ProductSegment = 'BS'; GeData.MachineParts = 'Machine'; GeData.SalesChannel = 'direct'; GeData.TradeType = 'Taxation'; GeData.SalesPrice = 100; GeData.DealerDistinguish = 'A'; List rslts1 = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2]; System.debug(rslts1); Pricebook2 p2 = [Select Id,Name From Pricebook2 Where SalesChannel__c = 'direct']; PricebookEntry pbe = new PricebookEntry(); pbe.Pricebook2Id = p2.Id; pbe.Product2Id = rslts1[0].Id; pbe.UnitPrice = 0; pbe.CurrencyIsoCode = 'CNY'; pbe.IsActive = true; pbe.KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD'; Date dateFrom = NFMUtil.parseStr2Date('20131202', false); Date dateTo = NFMUtil.parseStr2Date('20191204', true); Date dateFrom1 = NFMUtil.parseStr2Date('20131201', false); Date dateTo1 = NFMUtil.parseStr2Date('20191204', true); pbe.EffectiveDateFrom1_sales_A__c = dateFrom; pbe.EffectiveDateTo1_sales_A__c = dateTo; pbe.EffectiveDateFrom2_sales_A__c = dateFrom; pbe.EffectiveDateTo2_sales_A__c = dateTo; pbe.UseStandardPrice = false; insert pbe; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; List pres = [Select Id,Name,Pricebook2Id,Product2Id,KEY__c,EffectiveDateFrom1__c,EffectiveDateFrom2__c, EffectiveDateTo1__c,EffectiveDateTo2__c,CostPrice1__c,CostPrice2__c,SalesPrice1__c,SalesPrice2__c from PricebookEntry Where KEY__c = 'BS_Taxation_direct_Machine_testSBG005_USD']; List pr = [Select Id,Name,ProductSegment__c,TradeType__c,SalesChannel__c,MachineParts__c from Pricebook2 Where Id = :pres[0].Pricebook2Id]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); System.assertEquals(pr[0].ProductSegment__c,'BS'); System.assertEquals(pr[0].TradeType__c,'Taxation'); System.assertEquals(pr[0].SalesChannel__c,'direct'); System.assertEquals(pr[0].MachineParts__c,'Machine'); } @isTest static void testSBG005_resend() { Product2 prd = testSBG005Init(); prd.EffectiveDateTo__c = date.newinstance(2012, 12, 1); update prd; SBG005WebService.GeData GeData = new SBG005WebService.GeData(); SBG005WebService.GeDatas GeDatas = new SBG005WebService.GeDatas(); // Monitoringの設定 Datetime nowDT = Datetime.now(); String nowStr = nowDT.format('yyyyMMddHHmm'); GeDatas.Monitoring = new NFMUtil.Monitoring(); GeDatas.GeData = new SBG005WebService.GeData[] { GeData }; GeDatas.Monitoring.MessageGroupNumber = nowStr + '32'; GeData.ProductCode = 'testSBG005'; GeData.Currency_x = 'USD'; GeData.EffectiveDateFrom = '20121201'; GeData.EffectiveDateTo = '29121204'; GeData.PurposeOfAdvice = '2'; System.Test.startTest(); SBG005WebService.SBG005(GeDatas); System.Test.stopTest(); List rslts = [select Id, ProductCode, Product_ECCode__c, EffectiveDateTo__c, ProductModels__c, ProductStatus__c from Product2 where Product_ECCode__c = :GeData.ProductCode]; // deleteの場合、EffectiveDateTo が前日 System.assertEquals(1, rslts.size()); System.assertEquals(date.newinstance(2012, 12, 01), rslts[0].EffectiveDateTo__c); List rowbl = [Select Id, Log__c, ErrorLog__c from BatchIF_Log__c where RowDataFlg__c = true and Type__c = 'SBG005' order by CreatedDate desc]; System.assertEquals(1, rowbl.size()); rowbl[0].retry_cnt__c = 1; update rowbl; SBGITMWebService.execute(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(0, bl[0].retry_cnt__c); } }