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 87a5224..4e491fd 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019-2020 Nordix Foundation.
- *  Copyright (C) 2019-2020 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.
@@ -36,7 +36,6 @@ 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;
@@ -80,6 +79,7 @@ public class MonitoringPolicySerializationTest {
     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);
 
@@ -89,9 +89,11 @@ 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 {
@@ -123,9 +125,11 @@ public class MonitoringPolicySerializationTest {
         serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
         mergedServiceTemplate =
                 ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
-        verifyVfwMonitoringInputDeserialization(mergedServiceTemplate);
+        verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_100);
         serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_YAML);
         assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+
+        testDeserializationMonitoringV2();
     }
 
     @Test
@@ -144,13 +148,34 @@ public class MonitoringPolicySerializationTest {
             // vFirewall
             serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
             serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
-            verifyVfwMonitoringOutputserialization(serializedServiceTemplate);
+            verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_100);
 
+            // 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();
@@ -179,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());
@@ -211,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());
@@ -239,12 +264,12 @@ public class MonitoringPolicySerializationTest {
         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());
@@ -255,7 +280,7 @@ public class MonitoringPolicySerializationTest {
         // Check policies
         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();
@@ -305,7 +330,7 @@ public class MonitoringPolicySerializationTest {
         assertNotNull(properties.get(TCA_POLICY));
     }
 
-    private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate) {
+    private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate, String version) {
 
         JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
         assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
@@ -316,7 +341,7 @@ public class MonitoringPolicySerializationTest {
         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));