Added onap.policies.monitoring.tcagen2 version 2.0.0
[policy/models.git] / models-tosca / src / test / java / org / onap / policy / models / tosca / simple / serialization / MonitoringPolicySerializationTest.java
index f6f1b2c..4e491fd 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019-2020 Nordix Foundation.
- *  Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ *  Copyright (C) 2019-2020,2022 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.models.tosca.simple.serialization;
 
+import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
-
 import java.util.Map;
-
 import org.junit.Test;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.YamlJsonTranslator;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.models.base.PfConceptKey;
-import org.onap.policy.models.base.PfValidationResult;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy;
 import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
@@ -57,13 +54,13 @@ public class MonitoringPolicySerializationTest {
 
     private static final String VERSION = "version";
 
-    private static final String YAML_VERSION = "tosca_simple_yaml_1_0_0";
+    private static final String YAML_VERSION = "tosca_simple_yaml_1_1_0";
 
     private static final String DEFINITION_VERSION = "tosca_definitions_version";
 
     private static final String TOPOLOGY_TEMPLATE = "topology_template";
 
-    private static final String TCA_POLICY = "tca_policy";
+    private static final String TCA_POLICY = "tca.policy";
 
     private static final String PROPERTIES2 = "properties";
 
@@ -77,11 +74,12 @@ public class MonitoringPolicySerializationTest {
 
     private static final String POLICY1 = "onap.restart.tca";
 
-    private static final String TYPE1 = "onap.policies.monitoring.cdap.tca.hi.lo.app";
+    private static final String TYPE1 = "onap.policies.monitoring.tcagen2";
 
     private static final String METADATA = "metadata";
 
     private static final String VERSION_100 = "1.0.0";
+    private static final String VERSION_200 = "2.0.0";
 
     private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringPolicySerializationTest.class);
 
@@ -91,14 +89,16 @@ public class MonitoringPolicySerializationTest {
     private static final String VDNS_MON_INPUT_YAML = "policies/vDNS.policy.monitoring.input.tosca.yaml";
     private static final String VFW_MON_INPUT_JSON = "policies/vFirewall.policy.monitoring.input.tosca.json";
     private static final String VFW_MON_INPUT_YAML = "policies/vFirewall.policy.monitoring.input.tosca.yaml";
+    private static final String VFW_MON_INPUT_V2_JSON = "policies/vFirewall.policy.monitoring.input.tosca.v2.json";
+    private static final String VFW_MON_INPUT_V2_YAML = "policies/vFirewall.policy.monitoring.input.tosca.v2.yaml";
 
-    private StandardCoder standardCoder = new StandardCoder();
-    private YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
+    private final StandardCoder standardCoder = new StandardCoder();
+    private final YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
 
     @Test
     public void testDeserialization() throws Exception {
         String policyTypeInputJson =
-                ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml");
+                ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml");
         ToscaServiceTemplate plainPolicyTypes =
                 yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class);
 
@@ -111,7 +111,7 @@ public class MonitoringPolicySerializationTest {
                 ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
         verifyVcpeMonitoringInputDeserialization(mergedServiceTemplate);
         JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(VCPE_MON_INPUT_YAML);
-        assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+        assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
 
         // vDNS
         serviceTemplateFromJson = deserializeMonitoringInputJson(VDNS_MON_INPUT_JSON);
@@ -119,20 +119,22 @@ public class MonitoringPolicySerializationTest {
                 ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
         verifyVdnsMonitoringInputDeserialization(mergedServiceTemplate);
         serviceTemplateFromYaml = deserializeMonitoringInputYaml(VDNS_MON_INPUT_YAML);
-        assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+        assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
 
         // vFirewall
         serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
         mergedServiceTemplate =
                 ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
-        verifyVfwMonitoringInputDeserialization(mergedServiceTemplate);
+        verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_100);
         serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_YAML);
-        assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+        assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+
+        testDeserializationMonitoringV2();
     }
 
     @Test
     public void testSerialization() {
-        try {
+        assertThatCode(() -> {
             // vCPE
             JpaToscaServiceTemplate serviceTemplate = deserializeMonitoringInputJson(VCPE_MON_INPUT_JSON);
             String serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
@@ -146,16 +148,34 @@ public class MonitoringPolicySerializationTest {
             // vFirewall
             serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
             serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
-            verifyVfwMonitoringOutputserialization(serializedServiceTemplate);
+            verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_100);
 
-        } catch (Exception e) {
-            LOGGER.warn("No exception should be thrown", e);
-            fail("No exception should be thrown");
-        }
+            // vFirewall v2
+            serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+            serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
+            verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_200);
+        }).as("No exception should be thrown").doesNotThrowAnyException();
     }
 
-    private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
+    private void testDeserializationMonitoringV2() throws Exception {
+        String policyTypeInputJson =
+            ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.v2.yaml");
+        ToscaServiceTemplate plainPolicyTypes =
+            yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class);
+
+        JpaToscaServiceTemplate policyTypeServiceTemplate = new JpaToscaServiceTemplate();
+        policyTypeServiceTemplate.fromAuthorative(plainPolicyTypes);
+
+        JpaToscaServiceTemplate serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+        JpaToscaServiceTemplate mergedServiceTemplate =
+            ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
+        verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_200);
 
+        JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_V2_YAML);
+        assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+    }
+
+    private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
         String policyJson = ResourceUtils.getResourceAsString(resourcePath);
         ToscaServiceTemplate serviceTemplate = standardCoder.decode(policyJson, ToscaServiceTemplate.class);
         JpaToscaServiceTemplate jpaToscaServiceTemplate = new JpaToscaServiceTemplate();
@@ -184,8 +204,8 @@ public class MonitoringPolicySerializationTest {
 
         // Sanity check the entire structure
         assertNotNull(serviceTemplate);
-        LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
-        assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+        LOGGER.info(serviceTemplate.validate("").toString());
+        assertTrue(serviceTemplate.validate("").isValid());
 
         // Check tosca_definitions_version
         assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
@@ -194,7 +214,7 @@ public class MonitoringPolicySerializationTest {
                 serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
 
         // Check policies
-        assertTrue(policiesConceptMap.size() == 1);
+        assertEquals(1, policiesConceptMap.size());
         assertEquals(POLICY1, policiesConceptMap.keySet().iterator().next().getName());
         assertEquals("onap.restart.tca:1.0.0",
                 serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY1).getId());
@@ -202,12 +222,12 @@ public class MonitoringPolicySerializationTest {
         JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
 
         // Check metadata
-        assertTrue(policyVal.getMetadata().size() == 2);
+        assertEquals(2, policyVal.getMetadata().size());
         assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
         assertEquals(POLICY1, policyVal.getMetadata().entrySet().iterator().next().getValue());
 
         // Check properties
-        assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+        assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
         assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
         assertNotNull(policyVal.getProperties().values().iterator().next());
     }
@@ -216,8 +236,8 @@ public class MonitoringPolicySerializationTest {
 
         // Sanity check the entire structure
         assertNotNull(serviceTemplate);
-        LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
-        assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+        LOGGER.info(serviceTemplate.validate("").toString());
+        assertTrue(serviceTemplate.validate("").isValid());
 
         // Check tosca_definitions_version
         assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
@@ -226,7 +246,7 @@ public class MonitoringPolicySerializationTest {
                 serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
 
         // Check policies
-        assertTrue(policiesConceptMap.size() == 1);
+        assertEquals(1, policiesConceptMap.size());
         assertEquals(POLICY2, policiesConceptMap.keySet().iterator().next().getName());
         assertEquals("onap.scaleout.tca:1.0.0",
                 serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY2).getId());
@@ -234,22 +254,22 @@ public class MonitoringPolicySerializationTest {
         JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
 
         // Check metadata
-        assertTrue(policyVal.getMetadata().size() == 2);
+        assertEquals(2, policyVal.getMetadata().size());
         assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
         assertEquals(POLICY2, policyVal.getMetadata().entrySet().iterator().next().getValue());
 
         // Check properties
-        assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+        assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
         assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
         assertNotNull(policyVal.getProperties().values().iterator().next());
     }
 
-    private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate) {
+    private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version) {
 
         // Sanity check the entire structure
         assertNotNull(serviceTemplate);
-        LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
-        assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+        LOGGER.info(serviceTemplate.validate("").toString());
+        assertTrue(serviceTemplate.validate("").isValid());
 
         // Check tosca_definitions_version
         assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
@@ -258,31 +278,31 @@ public class MonitoringPolicySerializationTest {
                 serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
 
         // Check policies
-        assertTrue(policiesConceptMap.size() == 1);
+        assertEquals(1, policiesConceptMap.size());
         assertEquals(POLICY3, policiesConceptMap.keySet().iterator().next().getName());
-        assertEquals("onap.vfirewall.tca:1.0.0",
+        assertEquals("onap.vfirewall.tca:" + version,
                 serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY3).getId());
 
         JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
 
         // Check metadata
-        assertTrue(policyVal.getMetadata().size() == 2);
+        assertEquals(2, policyVal.getMetadata().size());
         assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
         assertEquals(POLICY3, policyVal.getMetadata().entrySet().iterator().next().getValue());
 
         // Check properties
-        assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+        assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
         assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
         assertNotNull(policyVal.getProperties().values().iterator().next());
     }
 
     private void verifyVcpeMonitoringOutputserialization(String serializedServiceTemplate) {
 
-        JsonObject serviceTemplateJsonObject = new JsonParser().parse(serializedServiceTemplate).getAsJsonObject();
+        JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
         assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
         JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
         JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
-        assertTrue(policiesJsonArray.size() == 1);
+        assertEquals(1, policiesJsonArray.size());
         JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
         assertNotNull(policy.get(POLICY1));
         JsonObject policyVal = policy.get(POLICY1).getAsJsonObject();
@@ -295,11 +315,11 @@ public class MonitoringPolicySerializationTest {
 
     private void verifyVdnsMonitoringOutputserialization(String serializedServiceTemplate) {
 
-        JsonObject serviceTemplateJsonObject = new JsonParser().parse(serializedServiceTemplate).getAsJsonObject();
+        JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
         assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
         JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
         JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
-        assertTrue(policiesJsonArray.size() == 1);
+        assertEquals(1, policiesJsonArray.size());
         JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
         assertNotNull(policy.get(POLICY2));
         JsonObject policyVal = policy.get(POLICY2).getAsJsonObject();
@@ -310,18 +330,18 @@ public class MonitoringPolicySerializationTest {
         assertNotNull(properties.get(TCA_POLICY));
     }
 
-    private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate) {
+    private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate, String version) {
 
-        JsonObject serviceTemplateJsonObject = new JsonParser().parse(serializedServiceTemplate).getAsJsonObject();
+        JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
         assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
         JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
         JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
-        assertTrue(policiesJsonArray.size() == 1);
+        assertEquals(1, policiesJsonArray.size());
         JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
         assertNotNull(policy.get(POLICY3));
         JsonObject policyVal = policy.get(POLICY3).getAsJsonObject();
         assertEquals(TYPE1, policyVal.get("type").getAsString());
-        assertEquals(VERSION_100, policyVal.get(VERSION).getAsString());
+        assertEquals(version, policyVal.get(VERSION).getAsString());
         assertEquals(POLICY3, policyVal.get(METADATA).getAsJsonObject().get(POLICY_ID).getAsString());
         JsonObject properties = policyVal.get(PROPERTIES2).getAsJsonObject();
         assertNotNull(properties.get(TCA_POLICY));