@isTest
|
private class SBG018RestTest {
|
|
public static ProductInventory__c productInventory;
|
public static void init() {
|
Product2 prd1 = testSBG018Init();
|
productInventory = new ProductInventory__c();
|
productInventory.TransforDate__c = Date.today() ;
|
productInventory.ProductCode__c = prd1.Id;
|
productInventory.Plant__c = 'CCTV' ;
|
productInventory.ProductSegment__c = 'LS' ;
|
productInventory.ProductType__c = 'SP';
|
productInventory.InventoryQuantity__c = 22;
|
productInventory.TradeType__c = 'Taxation';
|
productInventory.ManagementCode__c = prd1.ProductCode +'_LS_SP';
|
productInventory.InventoryCode__c =prd1.ProductCode +'_LS_SP_CCTV_Taxation';
|
|
insert productInventory;
|
|
}
|
static Product2 testSBG018Init() {
|
|
Product2 prd = new Product2();
|
prd.Product_ECCode__c = 'testSBG018';
|
prd.ProductCode = 'testSBG018';
|
prd.Name = 'testSBG018';
|
prd.IsActive = true;
|
insert prd;
|
Pricebook2 prdbook1 = new Pricebook2(
|
Name = 'testSBG018',
|
ProductSegment__c = 'BS',
|
TradeType__c = 'Taxation',
|
SalesChannel__c = 'dealer',
|
MachineParts__c = 'Machine',
|
isActive = true);
|
|
insert prdbook1;
|
Pricebook2 prdbook2 = new Pricebook2(
|
Name = 'testSBG018',
|
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 testSBG018_void() {
|
|
init();
|
|
SBG018Rest.GeData GeData = new SBG018Rest.GeData();
|
SBG018Rest.GeDatas GeDatas = new SBG018Rest.GeDatas();
|
GeDatas.GeData = new SBG018Rest.GeData[] { GeData };
|
Datetime nowDT = Datetime.now();
|
String nowStr = nowDT.format('yyyyMMddHHmm');
|
GeDatas.Monitoring = new NFMUtil.Monitoring();
|
GeDatas.Monitoring.MessageGroupNumber = nowStr + '01';
|
SBG018Rest.GeDataDetails GeDataDetail01 = new SBG018Rest.GeDataDetails();
|
SBG018Rest.GeDataDetails GeDataDetail02 = new SBG018Rest.GeDataDetails();
|
GeData.GeDataDetails = new SBG018Rest.GeDataDetails[] {GeDataDetail01, GeDataDetail02};
|
GeData.Status = 'Z5';
|
GeData.TransforDate = String.valueOf(Date.today());//'20210113';
|
GeDataDetail01.ProductCode = 'testSBG018';
|
GeDataDetail01.Plant = 'CCTV';
|
GeDataDetail01.Department = 'LS';
|
GeDataDetail01.FGSP = 'SP';
|
GeDataDetail01.Qty = '11';
|
GeDataDetail01.TradeType = 'Taxation';
|
GeDataDetail02.ProductCode = 'testSBG018';
|
// 用于触发异常 进入Catch
|
GeDataDetail02.Plant = 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.Plant += 'CCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTVCCTV';
|
GeDataDetail02.TradeType = 'Taxation';
|
|
GeDataDetail02.Department = 'LS';
|
GeDataDetail02.FGSP = 'FG';
|
GeDataDetail02.Qty = '11';
|
System.Test.startTest();
|
BatchIF_Log__c rowData = NFMUtil.saveRowData(GeDatas.Monitoring, 'SBG018', GeDatas.GeData);
|
SBG018Rest.main(rowData.Id);
|
|
System.Test.stopTest();
|
|
}
|
|
|
@isTest static void testSBG018_void2() {
|
|
init();
|
|
SBG018Rest.GeData GeData = new SBG018Rest.GeData();
|
SBG018Rest.GeDatas GeDatas = new SBG018Rest.GeDatas();
|
GeDatas.GeData = new SBG018Rest.GeData[] { GeData };
|
Datetime nowDT = Datetime.now();
|
String nowStr = nowDT.format('yyyyMMddHHmm');
|
GeDatas.Monitoring = new NFMUtil.Monitoring();
|
GeDatas.Monitoring.MessageGroupNumber = nowStr + '01';
|
SBG018Rest.GeDataDetails GeDataDetail01 = new SBG018Rest.GeDataDetails();
|
SBG018Rest.GeDataDetails GeDataDetail02 = new SBG018Rest.GeDataDetails();
|
GeData.GeDataDetails = new SBG018Rest.GeDataDetails[] {GeDataDetail01, GeDataDetail02};
|
GeData.Status = 'Z5';
|
GeData.TransforDate = String.valueOf(Date.today());//'20210113';
|
GeDataDetail01.ProductCode = 'testSBG018';
|
GeDataDetail01.Plant = 'CCTV';
|
GeDataDetail01.Department = 'LS';
|
GeDataDetail01.FGSP = 'SP';
|
GeDataDetail01.Qty = '11';
|
GeDataDetail01.TradeType = 'Taxation';
|
GeDataDetail02.ProductCode = 'testSBG018';
|
// 用于触发异常 进入Catch
|
GeDataDetail02.Plant = 'CC31';
|
|
GeDataDetail02.Department = 'LS';
|
GeDataDetail02.FGSP = 'FG';
|
GeDataDetail02.Qty = '11';
|
GeDataDetail02.TradeType = 'Taxation';
|
System.Test.startTest();
|
BatchIF_Log__c rowData = NFMUtil.saveRowData(GeDatas.Monitoring, 'SBG018', GeDatas.GeData);
|
SBG018Rest.main(rowData.Id);
|
|
System.Test.stopTest();
|
|
}
|
// 测试SBG018Rest execute部分 以及必填字段的验证覆盖
|
@isTest static void test_execute() {
|
testSBG018Init();
|
Test.startTest();
|
RestRequest req = new RestRequest();
|
RestResponse res = new RestResponse();
|
|
String JsonMsg = '{"GeDatas":{"Monitoring":{"Tag":"MSGH","Sender":1330,"Receiver":1592,"MessageType":"SBG018","MessageGroupNumber":570968,"NumberOfRecord":18,"TransmissionDateTime":202101131323},"GeData":[{"Status":"Z5","TransforDate":20210203,"GeDataDetails":[{"ProductCode":"","Plant":"CC20","Department":"IE","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000001100500","Plant":"CC40","Department":"","FGSP":"FG","Qty":"0.000"},{"ProductCode":"000000000001100500","Plant":"","Department":"IE","FGSP":"SP","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC19","Department":"LS","FGSP":"","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC20","Department":"IE","FGSP":"FG","Qty":"1.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC40","Department":"IE","FGSP":"FG","Qty":"","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC41","Department":"LS","FGSP":"FG","Qty":"Test","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC42","Department":"IE","FGSP":"SP","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC46","Department":"LS","FGSP":"SP","Qty":"6.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003914083","Plant":"CC54","Department":"LS","FGSP":"FG","Qty":"11.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC19","Department":"LS","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC20","Department":"IE","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC40","Department":"IE","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC41","Department":"LS","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC42","Department":"IE","FGSP":"SP","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"000000000003980500","Plant":"CC54","Department":"LS","FGSP":"FG","Qty":"0.000","TradeType":"Tax Exemption"},{"ProductCode":"Q0500040","Plant":"CC22","Department":"NDT","FGSP":"FG","Qty":"0.000","TradeType":"Taxation"},{"ProductCode":"Q0500040","Plant":"CC45","Department":"NDT","FGSP":"FG","Qty":"0.000","TradeType":""}]}]}}';
|
req.requestURI = 'services/apexrest/SBG018/execute';
|
req.httpMethod = 'POST';
|
req.requestBody = Blob.valueof(JsonMsg);
|
RestContext.request = req;
|
RestContext.response = res;
|
|
SBG018Rest.execute();
|
|
Test.stopTest();
|
}
|
// static testMethod void testMethod1() {
|
|
// }
|
}
|