From 12d359cfbe3c6bd3788734b9d48f02b63129640f Mon Sep 17 00:00:00 2001 From: Thisal Tennakoon Date: Sun, 31 Mar 2024 20:26:28 +0530 Subject: [PATCH] Added testGetAPISpecificOperationPolicyForAPIRevision test --- .../OperationPolicyTestCase.java | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/am/integration/tests/operationPolicy/OperationPolicyTestCase.java b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/am/integration/tests/operationPolicy/OperationPolicyTestCase.java index 1ba52fe3a8..20820818c0 100644 --- a/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/am/integration/tests/operationPolicy/OperationPolicyTestCase.java +++ b/modules/integration/tests-integration/tests-backend/src/test/java/org/wso2/am/integration/tests/operationPolicy/OperationPolicyTestCase.java @@ -634,8 +634,45 @@ public void testAddAPISpecificOperationPolicyYAML() throws Exception { policyMap.put("customAPISpecificLogPolicyYAML", newPolicyId); } - @Test(groups = {"wso2.am"}, description = "Delete API specific operation policy created using YAML Policy Definition", + @Test(groups = {"wso2.am"}, description = "Get API specific operation policy for API revision", dependsOnMethods = "testAddAPISpecificOperationPolicyYAML") + public void testGetAPISpecificOperationPolicyForAPIRevision() throws Exception { + + HttpResponse getAPIResponse = restAPIPublisher.getAPI(apiId); + APIDTO apidto = new Gson().fromJson(getAPIResponse.getData(), APIDTO.class); + + String policyName = "customAPISpecificLogPolicyYAML"; + Assert.assertNotNull(policyMap.get(policyName), "Unable to find a common policy with name " + policyName); + + List opList = getPolicyList(policyName, policyMap, null); + + APIOperationPoliciesDTO apiOperationPoliciesDTO = new APIOperationPoliciesDTO(); + apiOperationPoliciesDTO.setRequest(opList); + + // Add the operation policy to the API + apidto.getOperations().get(0).setOperationPolicies(apiOperationPoliciesDTO); + restAPIPublisher.updateAPI(apidto); + + // Create a new Revision and Deploy to Gateway + String revisionID = createAPIRevisionAndDeployUsingRest(apiId, restAPIPublisher); + waitForAPIDeployment(); + + // Remove the operation policy from the API + apidto.getOperations().get(0).setOperationPolicies(new APIOperationPoliciesDTO()); + restAPIPublisher.updateAPI(apidto); + + // Get & Validate the operation policy from the API Revision + HttpResponse getAPIRevisionResponse = restAPIPublisher.getAPI(revisionID); + APIDTO apiRevisiondto = new Gson().fromJson(getAPIRevisionResponse.getData(), APIDTO.class); + String policyId = apiRevisiondto.getOperations().get(0).getOperationPolicies().getRequest().get(0).getPolicyId(); + OperationPolicyDataDTO operationPolicyDataDTO = restAPIPublisher.getAPISpecificOperationPolicy(policyId, revisionID); + assertNotNull(operationPolicyDataDTO); + assertEquals(operationPolicyDataDTO.getName(), policyName); + assertEquals(operationPolicyDataDTO.getId(), policyId); + } + + @Test(groups = {"wso2.am"}, description = "Delete API specific operation policy created using YAML Policy Definition", + dependsOnMethods = "testGetAPISpecificOperationPolicyForAPIRevision") public void testDeleteAPISpecificOperationPolicyYAML() throws Exception { int responseCode = deleteOperationPolicy(policyMap.get("customAPISpecificLogPolicyYAML"), apiId);