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=103eb4cafe4e2d069788e266f7bef74bf879cc5a;hpb=14d66fcf742b8a15867ac0b9b82176b0958f0ae6;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 103eb4ca..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,7 +33,9 @@ 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; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; @@ -44,22 +46,29 @@ import javax.ws.rs.client.Invocation; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; + import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.ClientProperties; 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.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; @@ -103,12 +112,17 @@ 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_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"; @@ -120,20 +134,23 @@ public class TestApiRestServer { private static final String OPS_POLICIES = "policytypes/onap.policies.controlloop.Operational/versions/1.0.0/policies"; private static final String OPS_POLICIES_VCPE_LATEST = - "policytypes/onap.policies.controlloop.Guard/versions/1.0.0/policies/operational.restart" + "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.Guard/versions/1.0.0/policies/operational.scaleout" + "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.Guard/versions/1.0.0/policies/operational.modifyconfig" + "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"; + + "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"; + + "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"; + + "onap.policies.controlloop.Operational/versions/1.0.0/policies/operational.modifyconfig/versions/1"; private static final String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore"; private static final CommonTestData COMMON_TEST_DATA = new CommonTestData(); @@ -164,13 +181,44 @@ 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() throws Exception { + if (policyTypeProvider != null) { + policyTypeProvider.close(); + } + if (policyProvider != null) { + policyProvider.close(); + } if (main != null) { stopApiService(main); } else if (restServer != null) { @@ -357,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() { @@ -377,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() { @@ -427,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() { @@ -441,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() { @@ -453,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() { @@ -465,6 +662,19 @@ 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() { @@ -496,6 +706,33 @@ public class TestApiRestServer { }).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() { @@ -539,6 +776,43 @@ public class TestApiRestServer { }).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() { @@ -552,6 +826,31 @@ public class TestApiRestServer { }).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() { @@ -565,6 +864,21 @@ public class TestApiRestServer { }).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() { @@ -619,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( @@ -813,4 +1172,4 @@ public class TestApiRestServer { assertEquals(code, report.getCode()); assertEquals(message, report.getMessage()); } -} \ No newline at end of file +}