X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fportal%2Fnonrtric%2Fcontrolpanel%2Fpolicyagentapi%2FPolicyAgentApiImplTest.java;h=deedd8e1ed84e5cd77c6dcfbf24050cbc4433243;hb=b36108a6b4f18c5620ed120184bdd8c86c85c70e;hp=87a831f97345d2c3b8f8d6efada59d5076e43709;hpb=81ff72c1ab1f0606ec886ab21795dbc6ae54ff7f;p=portal%2Fnonrtric-controlpanel.git 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 87a831f..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 @@ -28,17 +28,17 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; -import java.lang.reflect.Type; import java.nio.charset.StandardCharsets; import java.util.Arrays; -import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.oransc.portal.nonrtric.controlpanel.model.ImmutablePolicyInfo; import org.oransc.portal.nonrtric.controlpanel.model.PolicyInfo; +import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstance; import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstances; import org.oransc.portal.nonrtric.controlpanel.util.AsyncRestClient; import org.springframework.http.HttpStatus; @@ -47,19 +47,26 @@ import org.springframework.web.client.HttpServerErrorException; import reactor.core.publisher.Mono; class PolicyAgentApiImplTest { - private static final String URL_POLICY_SCHEMAS = "/policy_schemas"; + private static final String URL_POLICY_SCHEMAS = "/v2/policy-types"; private static final String POLICY_TYPE_1_ID = "type1"; private static final String POLICY_TYPE_1_VALID = "{\"title\":\"type1\"}"; private static final String POLICY_TYPE_1_INVALID = "\"title\":\"type1\"}"; private static final String POLICY_TYPE_2_VALID = "{\"title\":\"type2\"}"; private static final String POLICY_1_ID = "policy1"; - private static final String POLICY_1_VALID = "{\"policyId\":\"policy1\"}"; - private static final String POLICY_1_INVALID = "\"policyId\":\"policy1\"}"; + private static final String POLICY_DATA = + "{\"qosObjectives\":{\"priorityLevel\":22.0},\"scope\":{\"qosId\":\"22\",\"ueId\":\"22\"}}"; + private static final String POLICY_1_VALID = + "{\"policy_id\":\"policy1\",\"policytype_id\":\"type1\",\"ric_id\":\"ric1\",\"policy_data\":" + POLICY_DATA + + ",\"service_id\":\"controlpanel\"}"; + private static final String POLICY_1_INVALID = "\"policy_id\":\"policy1\"}"; private static final String RIC_1_ID = "ric1"; - private static final String RIC_1_INFO_VALID = "{\"ricName\":\"ric1\",\"policyTypes\":[\"type1\"]}"; - private static final String RIC_1_INFO_INVALID = "{\"ricName\":\"ric1\",\"policyTypes\":\"type1\"]}"; + private static final String RIC_1_INFO_VALID = "{\"ric_id\":\"ric1\",\"policytype_ids\":[\"type1\"]}"; + 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(); // @@ -93,9 +100,10 @@ class PolicyAgentApiImplTest { @Test void testGetAllPolicyTypesSuccessValidJson() { - String policyTypes = Arrays.asList(POLICY_TYPE_1_VALID, POLICY_TYPE_2_VALID).toString(); - - whenGetReturnOK(URL_POLICY_SCHEMAS, HttpStatus.OK, policyTypes); + String returnValue = "{\"policytype_ids\": [\"type1\",\"type2\"]}"; + whenGetReturnOK(URL_POLICY_SCHEMAS, HttpStatus.OK, returnValue); + whenGetReturnOK(URL_POLICY_SCHEMAS + "/type1", HttpStatus.OK, "{\"policy_schema\":{}}"); + whenGetReturnOK(URL_POLICY_SCHEMAS + "/type2", HttpStatus.OK, "{\"policy_schema\":{}}"); ResponseEntity resp = apiUnderTest.getAllPolicyTypes(); assertTrue(resp.getBody().contains("\"name\":\"type1\"")); @@ -114,7 +122,7 @@ class PolicyAgentApiImplTest { } private String urlPolicyInstances(String type) { - return "/policies?type=" + type; + return "/v2/policies?policytype_id=" + type; } @Test @@ -128,13 +136,14 @@ class PolicyAgentApiImplTest { @Test void testGetPolicyInstancesForTypeSuccessValidJson() { - String policyInstances = Arrays.asList(POLICY_1_VALID).toString(); - String policyInstancesJson = parsePolicyInstancesJson(policyInstances); + String policyInstances = "{\"policy_ids\":[\"policy1\"]}"; + String policyInstancesJson = parsePolicyInstancesJson("[\"policy1\"]"); 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); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); } @@ -152,22 +161,26 @@ class PolicyAgentApiImplTest { } private String urlPolicyInstance(String id) { - return "/policy?id=" + id; + 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); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); - assertEquals(POLICY_1_VALID, returnedResp.getBody()); - + assertEquals(POLICY_DATA, gson.toJson(returnedResp.getBody())); } - private String urlPutPolicy(String type, String id, String ric) { - return "/policy?type=" + type + "&id=" + id + "&ric=" + ric + "&service=controlpanel"; + private String urlPutPolicy() { + return "/v2/policies/"; } private void whenPutReturnOK(String url, String putBody, HttpStatus status, String body) { @@ -183,11 +196,21 @@ class PolicyAgentApiImplTest { @Test void testPutPolicyFailure() { - String url = urlPutPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, RIC_1_ID); - whenPutReturnFailure(url, POLICY_1_VALID, HttpStatus.NOT_FOUND, CLIENT_ERROR_MESSAGE); + 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(data) // + .serviceId(SERVICE_ID) // + .build(); // + + String jsonStr = gson.toJson(i); + whenPutReturnFailure(url, jsonStr, HttpStatus.NOT_FOUND, CLIENT_ERROR_MESSAGE); ResponseEntity returnedResp = - apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_1_VALID, RIC_1_ID); + apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_DATA, RIC_1_ID); assertTrue(returnedResp.getBody().contains(CLIENT_ERROR_MESSAGE)); assertEquals(HttpStatus.NOT_FOUND, returnedResp.getStatusCode()); @@ -195,12 +218,20 @@ class PolicyAgentApiImplTest { @Test void testPutPolicySuccess() { - String url = urlPutPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, RIC_1_ID); - whenPutReturnOK(url, POLICY_1_VALID, HttpStatus.OK, POLICY_1_VALID); + 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(data) // + .serviceId(SERVICE_ID) // + .build(); // + String jsonStr = gson.toJson(i); + whenPutReturnOK(url, jsonStr, HttpStatus.OK, POLICY_1_VALID); ResponseEntity returnedResp = - apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_1_VALID, RIC_1_ID); - + apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_DATA, RIC_1_ID); assertNull(returnedResp.getBody()); assertEquals(HttpStatus.OK, returnedResp.getStatusCode()); } @@ -217,7 +248,7 @@ class PolicyAgentApiImplTest { } private String deletePolicyUrl(String id) { - return "/policy?id=" + id; + return "/v2/policies/" + id; } @Test @@ -239,14 +270,14 @@ class PolicyAgentApiImplTest { } private String urlRicInfo(String typeName) { - return "/rics?policyType=" + typeName; + return "/v2/rics?policytype_id=" + typeName; } @Test void testGetRicsSupportingTypeValidJson() { String rics = Arrays.asList(RIC_1_INFO_VALID).toString(); - - this.whenGetReturnOK(urlRicInfo(POLICY_TYPE_1_ID), HttpStatus.OK, rics); + String returnVal = "{\"rics\":" + rics + "}"; + this.whenGetReturnOK(urlRicInfo(POLICY_TYPE_1_ID), HttpStatus.OK, returnVal); ResponseEntity resp = apiUnderTest.getRicsSupportingType(POLICY_TYPE_1_ID); @@ -267,12 +298,20 @@ class PolicyAgentApiImplTest { } private String parsePolicyInstancesJson(String inputString) { - Type listType = new TypeToken>() {}.getType(); - List rspParsed = gson.fromJson(inputString, listType); - PolicyInstances policyInstances = new PolicyInstances(); - for (PolicyInfo policy : rspParsed) { - policyInstances.add(policy); + JsonArray arr = JsonParser.parseString(inputString).getAsJsonArray(); + PolicyInstances res = new PolicyInstances(); + JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject(); + for (JsonElement id : arr) { + PolicyInfo i = PolicyInfo.builder() // + .policyId(id.getAsString()) // + .policyTypeId(POLICY_TYPE_1_ID) // + .ricId(RIC_1_ID) // + .policyData(data) // + .serviceId(SERVICE_ID) // + .lastModified(TIMESTAMP) // + .build(); // + res.add(i); } - return gson.toJson(policyInstances); + return gson.toJson(res); } }