Merge "Preloading native policy type for apex-pdp"
[policy/api.git] / main / src / test / java / org / onap / policy / api / main / rest / TestApiRestServer.java
index b065277..8ede881 100644 (file)
@@ -33,6 +33,7 @@ import java.lang.reflect.Modifier;
 import java.security.SecureRandom;
 import java.security.cert.X509Certificate;
 import java.util.Base64;
+import java.util.Collections;
 import java.util.Properties;
 
 import javax.net.ssl.SSLContext;
@@ -84,7 +85,7 @@ public class TestApiRestServer {
     private static final Logger LOGGER = LoggerFactory.getLogger(TestApiRestServer.class);
     private static final String NOT_ALIVE = "not alive";
     private static final String ALIVE = "alive";
-    private static final String SELF = "self";
+    private static final String SELF = NetworkUtil.getHostname();
     private static final String NAME = "Policy API";
     private static final String APP_JSON = "application/json";
     private static final String APP_YAML = "application/yaml";
@@ -151,6 +152,7 @@ public class TestApiRestServer {
             + "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.Operational/versions/1.0.0/policies/operational.modifyconfig/versions/1";
+    private static final String POLICIES = "policies";
 
     private static final String KEYSTORE = System.getProperty("user.dir") + "/src/test/resources/ssl/policy-keystore";
     private static final CommonTestData COMMON_TEST_DATA = new CommonTestData();
@@ -170,6 +172,11 @@ public class TestApiRestServer {
         "policies/vFirewall.policy.monitoring.input.tosca.yaml"
     };
 
+    private String[] toscaPoliciesResourceNames = {
+        "policies/vCPE.policies.optimization.input.tosca.json",
+        "policies/vCPE.policies.optimization.input.tosca.yaml"
+    };
+
     private String[] toscaPolicyTypeResourceNames = {
         "policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml",
         "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml",
@@ -222,7 +229,7 @@ public class TestApiRestServer {
         providerParams.setDatabaseUser("policy");
         providerParams.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes()));
         providerParams.setPersistenceUnit("ToscaConceptTest");
-        apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams);
+        apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams, Collections.emptyList());
         ParameterService.register(apiParamGroup, true);
         policyTypeProvider = new PolicyTypeProvider();
         policyProvider = new PolicyProvider();
@@ -291,6 +298,44 @@ public class TestApiRestServer {
         }
     }
 
+    @Test
+    public void testCreatePoliciesPersistent() throws Exception {
+        setupParameters(); // setup DB
+        main = startApiService(true);
+        for (String resrcName : toscaPolicyResourceNames) {
+            Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, true);
+            assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+            assertNotNull(response);
+            assertFalse(response.getToscaTopologyTemplate().getPolicies().isEmpty());
+        }
+    }
+
+    @Test
+    public void testSimpleCreatePolicies() throws Exception {
+        main = startApiService(true);
+        for (String resrcName : toscaPoliciesResourceNames) {
+            Response rawResponse = createResource(POLICIES, resrcName, true);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type onap.policies.optimization.AffinityPolicy:0.0.0 for "
+                + "policy OSDF_CASABLANCA.Affinity_vCPE_1:1.0.0 does not exist", error.getErrorMessage());
+        }
+    }
+
+    @Test
+    public void testSimpleCreatePoliciesPersistent() throws Exception {
+        setupParameters(); // setup DB
+        main = startApiService(true);
+        for (String resrcName : toscaPoliciesResourceNames) {
+            Response rawResponse = createResource(POLICIES, resrcName, true);
+            assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+            assertNotNull(response);
+            assertFalse(response.getToscaTopologyTemplate().getPolicies().isEmpty());
+        }
+    }
+
     @Test
     public void testCreateGuardPolicies() {
         try {
@@ -377,6 +422,44 @@ public class TestApiRestServer {
         }
     }
 
+    @Test
+    public void testHttpsCreatePoliciesPersistent() throws Exception {
+        setupParameters(); // setup DB
+        main = startApiService(false);
+        for (String resrcName : toscaPolicyResourceNames) {
+            Response rawResponse = createResource(POLICYTYPES_TCA_POLICIES, resrcName, false);
+            assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+            assertNotNull(response);
+            assertFalse(response.getToscaTopologyTemplate().getPolicies().isEmpty());
+        }
+    }
+
+    @Test
+    public void testHttpsSimpleCreatePolicies() throws Exception {
+        main = startApiService(false);
+        for (String resrcName : toscaPoliciesResourceNames) {
+            Response rawResponse = createResource(POLICIES, resrcName, false);
+            assertEquals(Response.Status.BAD_REQUEST.getStatusCode(), rawResponse.getStatus());
+            ErrorResponse error = rawResponse.readEntity(ErrorResponse.class);
+            assertEquals("policy type onap.policies.optimization.AffinityPolicy:0.0.0 for "
+                + "policy OSDF_CASABLANCA.Affinity_vCPE_1:1.0.0 does not exist", error.getErrorMessage());
+        }
+    }
+
+    @Test
+    public void testHttpsSimpleCreatePoliciesPersistent() throws Exception {
+        setupParameters(); // setup DB
+        main = startApiService(false);
+        for (String resrcName : toscaPoliciesResourceNames) {
+            Response rawResponse = createResource(POLICIES, resrcName, false);
+            assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+            ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+            assertNotNull(response);
+            assertFalse(response.getToscaTopologyTemplate().getPolicies().isEmpty());
+        }
+    }
+
     @Test
     public void testHttpsCreateGuardPolicies() {
         try {
@@ -614,6 +697,26 @@ public class TestApiRestServer {
         }
     }
 
+    @Test
+    public void testReadPreloadPolicyTypesPersistentJson() throws Exception {
+        setupParameters();
+        main = startApiService(true);
+        Response rawResponse = readResource(POLICYTYPES, true, APP_JSON);
+        assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+        ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+        assertEquals(26, response.getPolicyTypes().size());
+    }
+
+    @Test
+    public void testReadPreloadPolicyTypesPersistentYaml() throws Exception {
+        setupParameters();
+        main = startApiService(true);
+        Response rawResponse = readResource(POLICYTYPES, true, APP_YAML);
+        assertEquals(Response.Status.OK.getStatusCode(), rawResponse.getStatus());
+        ToscaServiceTemplate response = rawResponse.readEntity(ToscaServiceTemplate.class);
+        assertEquals(26, response.getPolicyTypes().size());
+    }
+
     @Test
     public void testReadPolicyTypesPersistentJson() {
         testReadPolicyTypesPersistent(APP_JSON);