diff --git a/flowgate-api/src/test/java/com/vmware/flowgate/controller/AssetControllerTest.java b/flowgate-api/src/test/java/com/vmware/flowgate/controller/AssetControllerTest.java index 5306bd36..1d117b69 100644 --- a/flowgate-api/src/test/java/com/vmware/flowgate/controller/AssetControllerTest.java +++ b/flowgate-api/src/test/java/com/vmware/flowgate/controller/AssetControllerTest.java @@ -3007,6 +3007,22 @@ else if(String.format(MetricKeyName.PDU_HUMIDITY_LOCATIONX, "OUTLET"). realtimeDataRepository.deleteById(humdityRealTimeData.getId()); } + @Test + public void testGetServerMetricsByIDFormulaIsEmpty() { + Asset asset = createAsset(); + long time = System.currentTimeMillis(); + int duration = 30*60*1000; + long startTime = time - duration; + Map formulars = new HashMap(); + asset.setMetricsformulars(formulars); + asset = assetRepository.save(asset); + + List metricDatas = + assetService.getMetricsByID(asset.getId(), startTime, duration); + TestCase.assertEquals(0, metricDatas.size()); + assetRepository.deleteById(asset.getId()); + } + @Test public void testGetServerMetricsByID() { Asset asset = createAsset(); @@ -3395,6 +3411,13 @@ public void testGetMetricDataForOther() { realtimeDataRepository.deleteById(realTimeData.getId()); } + @Test + public void testMetricFormulaStringIsNull() { + Asset asset = createAsset(); + Map formulaInfo = asset.metricsFormulaToMap(null, new TypeReference>(){}); + TestCase.assertEquals(null, formulaInfo); + } + RealTimeData createPduRealTimeData(Long time) { RealTimeData realTimeData = createServerPDURealTimeData(time); List valueunits = realTimeData.getValues(); diff --git a/flowgate-common/src/main/java/com/vmware/flowgate/common/model/Asset.java b/flowgate-common/src/main/java/com/vmware/flowgate/common/model/Asset.java index f9e4e3fb..80a63f0e 100644 --- a/flowgate-common/src/main/java/com/vmware/flowgate/common/model/Asset.java +++ b/flowgate-common/src/main/java/com/vmware/flowgate/common/model/Asset.java @@ -484,6 +484,9 @@ public void setTenant(Tenant tenant) { public T metricsFormulaToMap(String formulasInfo, TypeReference type){ ObjectMapper mapper = new ObjectMapper(); + if(formulasInfo == null) { + return null; + } try { return mapper.readValue(formulasInfo, type); } catch (IOException e) {