From: ecaiyanlinux Date: Tue, 12 Jan 2021 10:19:20 +0000 (+0100) Subject: Improvement on dashboard backend X-Git-Tag: 2.2.0~123 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=bf7a85063ee0b0ea0829cffe1e6053f243a0e987;hp=34a30b0b34f863b103c55900c93408323298bdcc;p=portal%2Fnonrtric-controlpanel.git Improvement on dashboard backend Improve junit test cases Remove lastModified field when creating policy, this field is configured in PMS Timestamp fetched from PolicyStatus Signed-off-by: ecaiyanlinux Issue-ID: NONRTRIC-314 Change-Id: I1eabd732f93c6016ee2416eb93acff54639a39e7 --- diff --git a/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImpl.java b/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImpl.java index 56f2c38..9e30c51 100644 --- a/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImpl.java +++ b/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImpl.java @@ -144,6 +144,14 @@ public class PolicyAgentApiImpl implements PolicyAgentApi { String url = "/v2/policies/" + id; ResponseEntity rsp = webClient.getForEntity(url).block(); JsonObject obj = JsonParser.parseString(rsp.getBody()).getAsJsonObject(); + + // lastModified timestamp is fetched from PolicyStatus instead + ResponseEntity status = getPolicyStatus(id); + String lastModified = JsonParser.parseString(status.getBody()).getAsJsonObject() // + .get("last_modified") // + .getAsString(); // + obj.addProperty("lastModified", lastModified); + PolicyInfo i = gson.fromJson(obj, PolicyInfo.class); return new ResponseEntity<>(i, rsp.getStatusCode()); } catch (Exception e) { @@ -152,6 +160,17 @@ public class PolicyAgentApiImpl implements PolicyAgentApi { } } + public ResponseEntity getPolicyStatus(String id) { + try { + String url = "/v2/policies/" + id + "/status"; + ResponseEntity rsp = webClient.getForEntity(url).block(); + return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode()); + } catch (Exception e) { + ResponseEntity rsp = ErrorResponseHandler.handleException(e); + return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode()); + } + } + @Override public ResponseEntity getPolicyInstance(String id) { ResponseEntity rsp = getIndividualPolicyInstance(id); @@ -159,10 +178,6 @@ public class PolicyAgentApiImpl implements PolicyAgentApi { return new ResponseEntity<>(i.policyData, rsp.getStatusCode()); } - private String getTimeStampUTC() { - return java.time.Instant.now().toString(); - } - @Override public ResponseEntity putPolicy(String policyTypeIdString, String policyInstanceId, Object json, String ric) { @@ -176,7 +191,6 @@ public class PolicyAgentApiImpl implements PolicyAgentApi { .ricId(ric) // .policyData(data) // .serviceId("controlpanel") // - .lastModified(getTimeStampUTC()) // .build(); // try { diff --git a/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImplTest.java b/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImplTest.java index ade6343..deedd8e 100644 --- a/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImplTest.java +++ b/webapp-backend/src/test/java/org/oransc/portal/nonrtric/controlpanel/policyagentapi/PolicyAgentApiImplTest.java @@ -23,7 +23,6 @@ package org.oransc.portal.nonrtric.controlpanel.policyagentapi; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.contains; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -65,7 +64,9 @@ class PolicyAgentApiImplTest { private static final String RIC_1_INFO_INVALID = "{\"ric_id\":\"ric1\",\"policytype_ids\":\"type1\"]}"; private static final String CLIENT_ERROR_MESSAGE = "XXXXXXX"; private static final String SERVICE_ID = "controlpanel"; - + private static final String TIMESTAMP = "2021-01-12T09:59:33.392470Z"; + private static final String STATUS = + "{\"last_modified\": \"" + TIMESTAMP + "\",\"status\":{\"enforceStatus\": \"\",\"enforceReason\": \"\"}}"; private static com.google.gson.Gson gson = new GsonBuilder() // .serializeNulls() // .create(); // @@ -140,6 +141,7 @@ class PolicyAgentApiImplTest { whenGetReturnOK(urlPolicyInstances(POLICY_TYPE_1_ID), HttpStatus.OK, policyInstances); whenGetReturnOK(urlPolicyInstance(POLICY_1_ID), HttpStatus.OK, POLICY_1_VALID); + whenGetReturnOK(urlPolicyStatus(POLICY_1_ID), HttpStatus.OK, STATUS); ResponseEntity returnedResp = apiUnderTest.getPolicyInstancesForType(POLICY_TYPE_1_ID); assertEquals(returnedResp.getBody(), policyInstancesJson); @@ -162,9 +164,14 @@ class PolicyAgentApiImplTest { return "/v2/policies/" + id; } + private String urlPolicyStatus(String id) { + return "/v2/policies/" + id + "/status"; + } + @Test void testGetPolicyInstance() { whenGetReturnOK(urlPolicyInstance(POLICY_1_ID), HttpStatus.OK, POLICY_1_VALID); + whenGetReturnOK(urlPolicyStatus(POLICY_1_ID), HttpStatus.OK, STATUS); ResponseEntity returnedResp = apiUnderTest.getPolicyInstance(POLICY_1_ID); @@ -178,28 +185,28 @@ class PolicyAgentApiImplTest { private void whenPutReturnOK(String url, String putBody, HttpStatus status, String body) { ResponseEntity ret = new ResponseEntity<>(body, status); - when(restClient.putForEntity(eq(url), contains(SERVICE_ID))).thenReturn(Mono.just(ret)); + when(restClient.putForEntity(eq(url), eq(putBody))).thenReturn(Mono.just(ret)); } private void whenPutReturnFailure(String url, String putBody, HttpStatus status, String body) { HttpServerErrorException e = new HttpServerErrorException(status, body, body.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8); - when(restClient.putForEntity(eq(url), contains(SERVICE_ID))).thenReturn(Mono.error(e)); + when(restClient.putForEntity(eq(url), eq(putBody))).thenReturn(Mono.error(e)); } @Test void testPutPolicyFailure() { String url = urlPutPolicy(); - + JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject(); PolicyInstance i = PolicyInstance.builder() // .policyId(POLICY_1_ID) // .policyTypeId(POLICY_TYPE_1_ID) // .ricId(RIC_1_ID) // - .policyData(POLICY_DATA) // + .policyData(data) // .serviceId(SERVICE_ID) // .build(); // - String jsonStr = gson.toJson(i, PolicyInstance.class); + String jsonStr = gson.toJson(i); whenPutReturnFailure(url, jsonStr, HttpStatus.NOT_FOUND, CLIENT_ERROR_MESSAGE); ResponseEntity returnedResp = @@ -212,15 +219,15 @@ class PolicyAgentApiImplTest { @Test void testPutPolicySuccess() { String url = urlPutPolicy(); + JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject(); PolicyInstance i = PolicyInstance.builder() // .policyId(POLICY_1_ID) // .policyTypeId(POLICY_TYPE_1_ID) // .ricId(RIC_1_ID) // - .policyData(POLICY_DATA) // + .policyData(data) // .serviceId(SERVICE_ID) // .build(); // - String jsonStr = gson.toJson(i, PolicyInstance.class); - + String jsonStr = gson.toJson(i); whenPutReturnOK(url, jsonStr, HttpStatus.OK, POLICY_1_VALID); ResponseEntity returnedResp = @@ -301,6 +308,7 @@ class PolicyAgentApiImplTest { .ricId(RIC_1_ID) // .policyData(data) // .serviceId(SERVICE_ID) // + .lastModified(TIMESTAMP) // .build(); // res.add(i); }