X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=main%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fapi%2Fmain%2Frest%2FTestApiRestServer.java;h=815472950a0152a232a4b2925b1a0b21be5bca5e;hb=d42ca06bba29863d176ac6bc57a4ff34c9fd781a;hp=6be91739ef024404388705ad40cd97985614d610;hpb=90555d0346c7e852e6a4dc9622ed29343353b95c;p=policy%2Fapi.git diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java index 6be91739..81547295 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java @@ -33,6 +33,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Modifier; import java.security.SecureRandom; import java.security.cert.X509Certificate; +import java.util.Base64; import java.util.Properties; import javax.net.ssl.SSLContext; @@ -52,15 +53,22 @@ import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; import org.junit.After; import org.junit.Test; import org.onap.policy.api.main.exception.PolicyApiException; +import org.onap.policy.api.main.parameters.ApiParameterGroup; import org.onap.policy.api.main.parameters.CommonTestData; -import org.onap.policy.api.main.parameters.RestServerParameters; +import org.onap.policy.api.main.rest.provider.PolicyProvider; +import org.onap.policy.api.main.rest.provider.PolicyTypeProvider; import org.onap.policy.api.main.startstop.Main; +import org.onap.policy.common.endpoints.http.server.RestServer; +import org.onap.policy.common.endpoints.parameters.RestServerParameters; import org.onap.policy.common.endpoints.report.HealthCheckReport; import org.onap.policy.common.gson.GsonMessageBodyHandler; +import org.onap.policy.common.parameters.ParameterService; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.common.utils.resources.ResourceUtils; +import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.errors.concepts.ErrorResponse; +import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; import org.onap.policy.models.tosca.legacy.concepts.LegacyGuardPolicyInput; import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy; @@ -104,37 +112,52 @@ public class TestApiRestServer { + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/1.0.0"; private static final String POLICYTYPES_TCA_POLICIES_VCPE_LATEST = "policytypes/" + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/latest"; + private static final String POLICYTYPES_TCA_POLICIES_VCPE_DEPLOYED = "policytypes/" + + "onap.policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0/policies/onap.restart.tca/versions/deployed"; private static final String GUARD_POLICIES = "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies"; - private static final String GUARD_POLICIES_VDNS_FL = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout"; - private static final String GUARD_POLICIES_VDNS_MINMAX = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout"; + private static final String GUARD_POLICIES_VDNS_FL_LATEST = + "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout" + + "/versions/latest"; + private static final String GUARD_POLICIES_VDNS_FL_DEPLOYED = + "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout" + + "/versions/deployed"; + private static final String GUARD_POLICIES_VDNS_MINMAX_LATEST = + "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout" + + "/versions/latest"; private static final String GUARD_POLICIES_VDNS_FL_VERSION = "policytypes/" - + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1.0.0"; + + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.frequency.scaleout/versions/1"; private static final String GUARD_POLICIES_VDNS_MINMAX_VERSION = "policytypes/" - + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1.0.0"; + + "onap.policies.controlloop.Guard/versions/1.0.0/policies/guard.minmax.scaleout/versions/1"; private static final String OPS_POLICIES = "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"; - private static final String OPS_POLICIES_VCPE = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart"; - private static final String OPS_POLICIES_VDNS = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout"; - private static final String OPS_POLICIES_VFIREWALL = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig"; + private static final String OPS_POLICIES_VCPE_LATEST = + "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart" + + "/versions/latest"; + private static final String OPS_POLICIES_VCPE_DEPLOYED = + "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart" + + "/versions/deployed"; + private static final String OPS_POLICIES_VDNS_LATEST = + "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.scaleout" + + "/versions/latest"; + private static final String OPS_POLICIES_VFIREWALL_LATEST = + "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.modifyconfig" + + "/versions/latest"; private static final String OPS_POLICIES_VCPE_VERSION = "policytypes/" - + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart/versions/1.0.0"; + + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.restart/versions/1"; private static final String OPS_POLICIES_VDNS_VERSION = "policytypes/" - + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.scaleout/versions/1.0.0"; + + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.scaleout/versions/1"; private static final String OPS_POLICIES_VFIREWALL_VERSION = "policytypes/" - + "onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.modifyconfig/versions/1.0.0"; + + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.modifyconfig/versions/1"; - private static String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore"; + private static final String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore"; + private static final CommonTestData COMMON_TEST_DATA = new CommonTestData(); private Main main; - private ApiRestServer restServer; + private RestServer restServer; private StandardCoder standardCoder = new StandardCoder(); + private int port; // @formatter:off private String[] toscaPolicyResourceNames = { @@ -158,24 +181,48 @@ public class TestApiRestServer { "policies/vDNS.policy.operational.input.json", "policies/vFirewall.policy.operational.input.json" }; + private static PolicyModelsProviderParameters providerParams; + private static ApiParameterGroup apiParamGroup; + private static PolicyProvider policyProvider; + private static PolicyTypeProvider policyTypeProvider; + // @formatter:on + /** + * Initializes parameters. + * + * @throws PfModelException the PfModel parsing exception + */ + private void setupParameters() throws PfModelException { + + standardCoder = new StandardCoder(); + providerParams = new PolicyModelsProviderParameters(); + providerParams.setDatabaseDriver("org.h2.Driver"); + providerParams.setDatabaseUrl("jdbc:h2:mem:testdb"); + providerParams.setDatabaseUser("policy"); + providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes())); + providerParams.setPersistenceUnit("ToscaConceptTest"); + apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams); + ParameterService.register(apiParamGroup, true); + policyTypeProvider = new PolicyTypeProvider(); + policyProvider = new PolicyProvider(); + } + /** * Method for cleanup after each test. */ @After - public void teardown() { - - try { - if (NetworkUtil.isTcpPortOpen("localhost", 6969, 1, 1000L)) { - if (main != null) { - stopApiService(main); - } else if (restServer != null) { - restServer.stop(); - } - } - } catch (InterruptedException | IOException | PolicyApiException exp) { - LOGGER.error("teardown failed", exp); + public void teardown() throws Exception { + if (policyTypeProvider != null) { + policyTypeProvider.close(); + } + if (policyProvider != null) { + policyProvider.close(); + } + if (main != null) { + stopApiService(main); + } else if (restServer != null) { + restServer.stop(); } } @@ -196,16 +243,17 @@ public class TestApiRestServer { @Test public void testHealthCheckFailure() throws InterruptedException, IOException { - final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false); + port = NetworkUtil.allocPort(); + final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port); restServerParams.setName(CommonTestData.API_GROUP_NAME); - restServer = new ApiRestServer(restServerParams); + restServer = new RestServer(restServerParams, null, ApiRestController.class); try { restServer.start(); final Invocation.Builder invocationBuilder = sendHttpRequest(HEALTHCHECK_ENDPOINT); final HealthCheckReport report = invocationBuilder.get(HealthCheckReport.class); validateHealthCheckReport(NAME, SELF, false, 500, NOT_ALIVE, report); assertTrue(restServer.isAlive()); - assertTrue(restServer.toString().startsWith("ApiRestServer [servers=")); + assertTrue(restServer.toString().startsWith("RestServer [servers=")); } catch (final Exception exp) { LOGGER.error("testHealthCheckFailure failed", exp); fail("Test should not throw an exception"); @@ -246,11 +294,12 @@ public class TestApiRestServer { } @Test - public void testApiStatistics_500() { + public void testApiStatistics_500() throws Exception { - final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false); + port = NetworkUtil.allocPort(); + final RestServerParameters restServerParams = new CommonTestData().getRestServerParameters(false, port); restServerParams.setName(CommonTestData.API_GROUP_NAME); - restServer = new ApiRestServer(restServerParams); + restServer = new RestServer(restServerParams, null, ApiRestController.class); try { restServer.start(); final Invocation.Builder invocationBuilder = sendHttpRequest(STATISTICS_ENDPOINT); @@ -313,7 +362,7 @@ public class TestApiRestServer { Response rawResponse = readResource(POLICYTYPES, true); assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); - assertTrue(response.getPolicyTypes().get(0).isEmpty()); + assertTrue(response.getPolicyTypes().isEmpty()); rawResponse = readResource(POLICYTYPES_TCA, true); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus()); @@ -356,6 +405,48 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testReadPolicyTypesPersistent() throws Exception { + + setupParameters(); + main = startApiService(true); + for (String resrcName : toscaPolicyTypeResourceNames) { + Response rawResponse = createResource(POLICYTYPES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); + assertNotNull(response); + assertFalse(response.getPolicyTypes().get(0).isEmpty()); + } + + for (String resrcName : toscaPolicyResourceNames) { + Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + Response rawResponse = readResource(POLICYTYPES_TCA, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + rawResponse = readResource(POLICYTYPES_TCA_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(POLICYTYPES_TCA_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(POLICYTYPES_COLLECTOR, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(POLICYTYPES_COLLECTOR_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(POLICYTYPES_COLLECTOR_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testDeletePolicyType() { @@ -376,6 +467,24 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testDeletePolicyTypePersistent() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true);// create policy types + for (String resrcName : toscaPolicyTypeResourceNames) { + Response rawResponse = createResource(POLICYTYPES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); + assertNotNull(response); + assertFalse(response.getPolicyTypes().get(0).isEmpty()); + } + Response rawResponse = deleteResource(POLICYTYPES_TCA_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testCreatePolicies() { @@ -426,6 +535,39 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testReadPoliciesPersistent() throws Exception { + + setupParameters(); + main = startApiService(true); + for (String resrcName : toscaPolicyTypeResourceNames) { + Response rawResponse = createResource(POLICYTYPES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); + assertNotNull(response); + assertFalse(response.getPolicyTypes().get(0).isEmpty()); + } + + for (String resrcName : toscaPolicyResourceNames) { + Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + Response rawResponse; + rawResponse = readResource(POLICYTYPES_TCA, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testDeletePolicies() { @@ -440,6 +582,49 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testDeletePolicyVersion() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true);// create policy types + for (String resrcName : toscaPolicyTypeResourceNames) { + Response rawResponse = createResource(POLICYTYPES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); + assertNotNull(response); + assertFalse(response.getPolicyTypes().get(0).isEmpty()); + } + for (String resrcName : toscaPolicyResourceNames) { + Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + Response rawResponse = deleteResource(POLICYTYPES_TCA_POLICIES_VCPE_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + @Test + public void testGetAllVersionOfPolicy() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true);// create policy types + for (String resrcName : toscaPolicyTypeResourceNames) { + Response rawResponse = createResource(POLICYTYPES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class); + assertNotNull(response); + assertFalse(response.getPolicyTypes().get(0).isEmpty()); + } + for (String resrcName : toscaPolicyResourceNames) { + Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testCreateGuardPolicies() { @@ -452,6 +637,19 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testCreateGuardPolicies1() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true); + for (String resrcName : legacyGuardPolicyResourceNames) { + Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + } + @Test public void testCreateOperationalPolicies() { @@ -464,80 +662,157 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testCreateOperationalPolicies1() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true); + for (String resrcName : legacyOperationalPolicyResourceNames) { + Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + } + @Test public void testReadGuardPolicies() { assertThatCode(() -> { main = startApiService(true); - Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL, true); + Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_LATEST, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); ErrorResponse error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: guard.frequency.scaleout", + assertEquals("no policy found for policy: guard.frequency.scaleout:null", error.getErrorMessage()); rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: guard.frequency.scaleout", + assertEquals("no policy found for policy: guard.frequency.scaleout:1", error.getErrorMessage()); - rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX, true); + rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_LATEST, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: guard.minmax.scaleout", + assertEquals("no policy found for policy: guard.minmax.scaleout:null", error.getErrorMessage()); rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: guard.minmax.scaleout", + assertEquals("no policy found for policy: guard.minmax.scaleout:1", error.getErrorMessage()); }).doesNotThrowAnyException(); } + @Test + public void testReadGuardPolicies1() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true); + for (String resrcName : legacyGuardPolicyResourceNames) { + Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(GUARD_POLICIES_VDNS_FL_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(GUARD_POLICIES_VDNS_MINMAX_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testReadOperationalPolicies() { assertThatCode(() -> { main = startApiService(true); - Response rawResponse = readResource(OPS_POLICIES_VCPE, true); + Response rawResponse = readResource(OPS_POLICIES_VCPE_LATEST, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); ErrorResponse error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.restart", + assertEquals("no policy found for policy: operational.restart:null", error.getErrorMessage()); rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.restart", + assertEquals("no policy found for policy: operational.restart:1", error.getErrorMessage()); - rawResponse = readResource(OPS_POLICIES_VDNS, true); + rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.scaleout", + assertEquals("no policy found for policy: operational.scaleout:null", error.getErrorMessage()); rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.scaleout", + assertEquals("no policy found for policy: operational.scaleout:1", error.getErrorMessage()); - rawResponse = readResource(OPS_POLICIES_VFIREWALL, true); + rawResponse = readResource(OPS_POLICIES_VFIREWALL_LATEST, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.modifyconfig", + assertEquals("no policy found for policy: operational.modifyconfig:null", error.getErrorMessage()); rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.modifyconfig", + assertEquals("no policy found for policy: operational.modifyconfig:1", error.getErrorMessage()); }).doesNotThrowAnyException(); } + @Test + public void testReadOperationalPolicies1() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true); + for (String resrcName : legacyOperationalPolicyResourceNames) { + Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + Response rawResponse = readResource(OPS_POLICIES_VCPE_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(OPS_POLICIES_VCPE_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(OPS_POLICIES_VFIREWALL_LATEST, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + rawResponse = readResource(OPS_POLICIES_VFIREWALL_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + + } + @Test public void testDeleteGuardPolicy() { @@ -546,11 +821,36 @@ public class TestApiRestServer { Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); ErrorResponse error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: guard.frequency.scaleout", + assertEquals("no policy found for policy: guard.frequency.scaleout:1", error.getErrorMessage()); }).doesNotThrowAnyException(); } + @Test + public void testDeleteGuardPolicy1() throws Exception { + + setupParameters(); //setup DB + main = startApiService(true); + + for (String resrcName : legacyGuardPolicyResourceNames) { + Response rawResponse = createGuardPolicy(GUARD_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + + Response rawResponse = deleteResource(GUARD_POLICIES_VDNS_FL_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + + @Test + public void testGetDeployedVersionsOfGuardPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = readResource(GUARD_POLICIES_VDNS_FL_DEPLOYED, true); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + @Test public void testDeleteOperationalPolicy() { @@ -559,11 +859,26 @@ public class TestApiRestServer { Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true); assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); ErrorResponse error = rawResponse.readEntity(ErrorResponse.class); - assertEquals("no policy found for policy ID: operational.restart", + assertEquals("no policy found for policy: operational.restart:1", error.getErrorMessage()); }).doesNotThrowAnyException(); } + @Test + public void testDeleteOperationalPolicy1() throws Exception { + + setupParameters(); //setup DB + + main = startApiService(true); + for (String resrcName : legacyOperationalPolicyResourceNames) { + Response rawResponse = createOperationalPolicy(OPS_POLICIES, resrcName, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + } + Response rawResponse = deleteResource(OPS_POLICIES_VCPE_VERSION, true); + assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus()); + + } + @Test public void testHttpsCreatePolicyTypes() { @@ -618,6 +933,51 @@ public class TestApiRestServer { }).doesNotThrowAnyException(); } + @Test + public void testGetDeployedVersionsOfPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = readResource(POLICYTYPES_TCA_POLICIES_VCPE_DEPLOYED, true); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + + @Test + public void testGetLatestVersionOfOperationalPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = readResource(OPS_POLICIES_VDNS_LATEST, true); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + + @Test + public void testGetSpecificVersionOfOperationalPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = readResource(OPS_POLICIES_VDNS_VERSION, true); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + + @Test + public void testGetDeployedVersionsOfOperationalPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = readResource(OPS_POLICIES_VCPE_DEPLOYED, true); + assertEquals(Response.Status.NOT_FOUND.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + + @Test + public void testDeleteSpecificVersionOfOperationalPolicy() { + assertThatCode(() -> { + main = startApiService(true); + Response rawResponse = deleteResource(OPS_POLICIES_VDNS_VERSION, true); + assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus()); + }).doesNotThrowAnyException(); + } + private Response createResource(String endpoint, String resourceName, boolean http) throws Exception { ToscaServiceTemplate rawServiceTemplate = standardCoder.decode( @@ -693,19 +1053,24 @@ public class TestApiRestServer { return invocationBuilder.delete(); } - private Main startApiService(final boolean http) { + private Main startApiService(final boolean http) throws Exception { + port = NetworkUtil.allocPort(); final String[] apiConfigParameters = new String[2]; if (http) { + COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters.json", + "src/test/resources/parameters/ApiConfigParametersXXX.json", port); apiConfigParameters[0] = "-c"; - apiConfigParameters[1] = "parameters/ApiConfigParameters.json"; + apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParametersXXX.json"; } else { final Properties systemProps = System.getProperties(); systemProps.put("javax.net.ssl.keyStore", KEYSTORE); systemProps.put("javax.net.ssl.keyStorePassword", "Pol1cy_0nap"); System.setProperties(systemProps); + COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json", + "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json", port); apiConfigParameters[0] = "-c"; - apiConfigParameters[1] = "parameters/ApiConfigParameters_Https.json"; + apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json"; } return new Main(apiConfigParameters); } @@ -727,12 +1092,12 @@ public class TestApiRestServer { client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true"); client.register(GsonMessageBodyHandler.class); - final WebTarget webTarget = client.target("http://localhost:6969/policy/api/v1/" + endpoint); + final WebTarget webTarget = client.target("http://localhost:" + port + "/policy/api/v1/" + endpoint); final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON); - if (!NetworkUtil.isTcpPortOpen("localhost", 6969, 6, 10000L)) { - throw new IllegalStateException("cannot connect to port 6969"); + if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) { + throw new IllegalStateException("cannot connect to port " + port); } return invocationBuilder; } @@ -764,12 +1129,12 @@ public class TestApiRestServer { client.property(ClientProperties.METAINF_SERVICES_LOOKUP_DISABLE, "true"); client.register(GsonMessageBodyHandler.class); - final WebTarget webTarget = client.target("https://localhost:6969/policy/api/v1/" + endpoint); + final WebTarget webTarget = client.target("https://localhost:" + port + "/policy/api/v1/" + endpoint); final Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_JSON); - if (!NetworkUtil.isTcpPortOpen("localhost", 6969, 6, 10000L)) { - throw new IllegalStateException("cannot connect to port 6969"); + if (!NetworkUtil.isTcpPortOpen("localhost", port, 60, 1000L)) { + throw new IllegalStateException("cannot connect to port " + port); } return invocationBuilder; } @@ -807,4 +1172,4 @@ public class TestApiRestServer { assertEquals(code, report.getCode()); assertEquals(message, report.getMessage()); } -} \ No newline at end of file +}