X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-tosca%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Ftosca%2Fsimple%2Fserialization%2FMonitoringPolicyTypeSerializationTest.java;h=64027b976896118793f130713c36ad8feeffc10f;hb=6a75c3cd6b96a8ceef4ba02cf13832f88a15e352;hp=c40b32e3cf5baca3c5dc8d2a2e72664b67e79b2e;hpb=fd6105c2b65f51e229040bd4f6587af048d222a8;p=policy%2Fmodels.git diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java index c40b32e3c..64027b976 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/MonitoringPolicyTypeSerializationTest.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2020 Nordix Foundation. + * 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. @@ -24,28 +24,23 @@ package org.onap.policy.models.tosca.simple.serialization; 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.Gson; -import com.google.gson.JsonSyntaxException; - -import java.io.IOException; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.junit.Before; 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.resources.ResourceUtils; import org.onap.policy.models.base.PfConceptKey; -import org.onap.policy.models.base.PfValidationResult; -import org.onap.policy.models.tosca.simple.concepts.ToscaConstraintLogicalString; -import org.onap.policy.models.tosca.simple.concepts.ToscaConstraintValidValues; -import org.onap.policy.models.tosca.simple.concepts.ToscaDataType; -import org.onap.policy.models.tosca.simple.concepts.ToscaEntrySchema; -import org.onap.policy.models.tosca.simple.concepts.ToscaPolicyType; -import org.onap.policy.models.tosca.simple.concepts.ToscaProperty; -import org.onap.policy.models.tosca.simple.concepts.ToscaServiceTemplate; -import org.onap.policy.models.tosca.simple.serialization.ToscaServiceTemplateMessageBodyHandler; +import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintLogical; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintValidValues; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicyType; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty; +import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; @@ -57,368 +52,374 @@ import org.yaml.snakeyaml.Yaml; */ public class MonitoringPolicyTypeSerializationTest { + private static final String DATATYPE_ROOT = "tosca.datatypes.Root"; + + private static final String STRING_TEXT = "string"; + + private static final String DCAE = "onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server"; + + private static final String MONITORING = "onap.policies.Monitoring"; + + private static final String THRESHOLDS = "onap.datatypes.monitoring.thresholds"; + + private static final String TCA_V1 = "onap.datatypes.monitoring.tca_policy"; + private static final String TCA_V2 = "list"; + + private static final String METRICS = "onap.datatypes.monitoring.metricsPerEventName"; + + private static final String VERSION_000 = "0.0.0"; + 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(MonitoringPolicyTypeSerializationTest.class); - private static final String MONITORING_TCA_YAML = "policytypes/onap.policy.monitoring.cdap.tca.hi.lo.app.yaml"; + private static final String MONITORING_TCA_YAML = "policytypes/onap.policies.monitoring.tcagen2.yaml"; + private static final String MONITORING_TCA_V2_YAML = "policytypes/onap.policies.monitoring.tcagen2.v2.yaml"; + private static final String MONITORING_COLLECTORS_YAML = "policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml"; - private Gson gson; + private StandardCoder coder; @Before public void setUp() { - gson = new ToscaServiceTemplateMessageBodyHandler().getGson(); + coder = new StandardCoder(); } @Test - public void testDeserialization() { - try { - // TCA - ToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML); - verifyTcaInputDeserialization(serviceTemplateFromYaml); - - // Collector - serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML); - verifyCollectorInputDeserialization(serviceTemplateFromYaml); - - } catch (Exception e) { - fail("No exception should be thrown"); - } + public void testDeserialization() throws Exception { + // TCA v1 + JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML); + verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_100, TCA_V1); + + // TCA v2 + serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML); + verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_200, TCA_V2); + + // Collector + serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML); + verifyCollectorInputDeserialization(serviceTemplateFromYaml); } @Test - public void testSerialization() { - try { - // TCA - ToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML); - String serializedServiceTemplate1 = serializeMonitoringServiceTemplate(serviceTemplateFromYaml); - ToscaServiceTemplate serviceTemplateFromJson = gson.fromJson(serializedServiceTemplate1, - ToscaServiceTemplate.class); - String serializedServiceTemplate2 = serializeMonitoringServiceTemplate(serviceTemplateFromJson); - assertEquals(serializedServiceTemplate1, serializedServiceTemplate2); - - // Collector - serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML); - serializedServiceTemplate1 = serializeMonitoringServiceTemplate(serviceTemplateFromYaml); - serviceTemplateFromJson = gson.fromJson(serializedServiceTemplate1, ToscaServiceTemplate.class); - serializedServiceTemplate2 = serializeMonitoringServiceTemplate(serviceTemplateFromJson); - assertEquals(serializedServiceTemplate1, serializedServiceTemplate2); - - } catch (Exception e) { - fail("No exception should be thrown"); - } + public void testSerialization() throws Exception { + // TCA v1 + JpaToscaServiceTemplate tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML); + String serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml); + + ToscaServiceTemplate toscaServiceTemplateFromJsonTca = + coder.decode(serializedServiceTemplateTca, ToscaServiceTemplate.class); + + JpaToscaServiceTemplate serviceTemplateFromJsonTca = new JpaToscaServiceTemplate(); + serviceTemplateFromJsonTca.fromAuthorative(toscaServiceTemplateFromJsonTca); + String serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca); + assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut); + + // TCA v2 + tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML); + serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml); + + toscaServiceTemplateFromJsonTca = + coder.decode(serializedServiceTemplateTca, ToscaServiceTemplate.class); + + serviceTemplateFromJsonTca = new JpaToscaServiceTemplate(); + serviceTemplateFromJsonTca.fromAuthorative(toscaServiceTemplateFromJsonTca); + serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca); + assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut); + + // Collector + JpaToscaServiceTemplate collectorServiceTemplateFromYaml = + deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML); + String serializedServiceTemplateCollector = + serializeMonitoringServiceTemplate(collectorServiceTemplateFromYaml); + ToscaServiceTemplate toscaServiceTemplateFromJsonCollector = + coder.decode(serializedServiceTemplateCollector, ToscaServiceTemplate.class); + JpaToscaServiceTemplate serviceTemplateFromJsonCollector = new JpaToscaServiceTemplate(); + serviceTemplateFromJsonCollector.fromAuthorative(toscaServiceTemplateFromJsonCollector); + String serializedServiceTemplateCollectorsOut = + serializeMonitoringServiceTemplate(serviceTemplateFromJsonCollector); + assertEquals(serializedServiceTemplateCollector, serializedServiceTemplateCollectorsOut); } - private ToscaServiceTemplate deserializeMonitoringInputYaml(String resourcePath) - throws JsonSyntaxException, IOException { - + private JpaToscaServiceTemplate deserializeMonitoringInputYaml(String resourcePath) throws Exception { Yaml yaml = new Yaml(); String policyTypeYaml = ResourceUtils.getResourceAsString(resourcePath); Object yamlObject = yaml.load(policyTypeYaml); - String yamlAsJsonString = new Gson().toJson(yamlObject); - ToscaServiceTemplate serviceTemplate = gson.fromJson(yamlAsJsonString, ToscaServiceTemplate.class); - return serviceTemplate; + String yamlAsJsonString = coder.encode(yamlObject); + ToscaServiceTemplate serviceTemplate = coder.decode(yamlAsJsonString, ToscaServiceTemplate.class); + + JpaToscaServiceTemplate jpaToscaServiceTemplate = new JpaToscaServiceTemplate(); + jpaToscaServiceTemplate.fromAuthorative(serviceTemplate); + return jpaToscaServiceTemplate; } - private void verifyTcaInputDeserialization(ToscaServiceTemplate serviceTemplate) { + private void verifyTcaInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version, String tca) { // 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("tosca_simple_yaml_1_0_0", serviceTemplate.getToscaDefinitionsVersion()); + assertEquals("tosca_simple_yaml_1_1_0", serviceTemplate.getToscaDefinitionsVersion()); // Check policy_types - Map policyTypesConceptMap = serviceTemplate.getPolicyTypes().getConceptMap(); - assertTrue(policyTypesConceptMap.size() == 2); - Iterator> policyTypesIter = policyTypesConceptMap.entrySet().iterator(); + Map policyTypesConceptMap = serviceTemplate.getPolicyTypes().getConceptMap(); + assertEquals(2, policyTypesConceptMap.size()); + Iterator> policyTypesIter = policyTypesConceptMap.entrySet().iterator(); - Entry firstPolicyType = policyTypesIter.next(); - assertEquals("onap.policies.Monitoring", firstPolicyType.getKey().getName()); - assertEquals("1.0.0", firstPolicyType.getKey().getVersion()); + Entry firstPolicyType = policyTypesIter.next(); + assertEquals(MONITORING, firstPolicyType.getKey().getName()); + assertEquals(VERSION_100, firstPolicyType.getKey().getVersion()); assertEquals("tosca.policies.Root", firstPolicyType.getValue().getDerivedFrom().getName()); - assertEquals("a base policy type for all policies that governs monitoring provisioning", + assertEquals("a base policy type for all policies that govern monitoring provisioning", firstPolicyType.getValue().getDescription()); - Entry secondPolicyType = policyTypesIter.next(); - assertEquals("onap.policy.monitoring.cdap.tca.hi.lo.app", secondPolicyType.getKey().getName()); - assertEquals("1.0.0", secondPolicyType.getKey().getVersion()); - assertEquals("onap.policies.Monitoring", secondPolicyType.getValue().getDerivedFrom().getName()); - assertTrue(secondPolicyType.getValue().getProperties().size() == 1); - - ToscaProperty property = secondPolicyType.getValue().getProperties().iterator().next(); - assertEquals("onap.policy.monitoring.cdap.tca.hi.lo.app", property.getKey().getParentKeyName()); - assertEquals("1.0.0", property.getKey().getParentKeyVersion()); - assertEquals("tca_policy", property.getKey().getLocalName()); - assertEquals("map", property.getType().getName()); + Entry secondPolicyType = policyTypesIter.next(); + assertEquals("onap.policies.monitoring.tcagen2", secondPolicyType.getKey().getName()); + assertEquals(version, secondPolicyType.getKey().getVersion()); + assertEquals(MONITORING, secondPolicyType.getValue().getDerivedFrom().getName()); + assertEquals(1, secondPolicyType.getValue().getProperties().size()); + + JpaToscaProperty property = secondPolicyType.getValue().getProperties().values().iterator().next(); + assertEquals("onap.policies.monitoring.tcagen2", property.getKey().getParentKeyName()); + assertEquals(version, property.getKey().getParentKeyVersion()); + assertEquals("tca.policy", property.getKey().getLocalName()); + assertEquals(tca, property.getType().getName()); assertEquals("TCA Policy JSON", property.getDescription()); - ToscaEntrySchema entrySchema = property.getEntrySchema(); - assertEquals("map", entrySchema.getKey().getParentKeyName()); - assertEquals("1.0.0", entrySchema.getKey().getParentKeyVersion()); - assertEquals("entry_schema", entrySchema.getKey().getLocalName()); - assertEquals("onap.datatypes.monitoring.tca_policy", entrySchema.getType().getName()); - // Check data_types - Map dataTypesConceptMap = serviceTemplate.getDataTypes().getConceptMap(); - assertTrue(dataTypesConceptMap.size() == 3); - Iterator> dataTypesIter = dataTypesConceptMap.entrySet().iterator(); - - Entry firstDataType = dataTypesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataType.getKey().getName()); - ToscaDataType firstDataTypeVal = firstDataType.getValue(); - assertEquals("tosca.datatypes.Root", firstDataTypeVal.getDerivedFrom().getName()); - assertEquals("1.0.0", firstDataTypeVal.getDerivedFrom().getVersion()); - assertTrue(firstDataTypeVal.getProperties().size() == 6); - Iterator firstDataTypePropertiesIter = firstDataTypeVal.getProperties().iterator(); - - ToscaProperty firstDataTypeFirstProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeFirstProperty.getKey() - .getParentKeyName()); + Map dataTypesConceptMap = serviceTemplate.getDataTypes().getConceptMap(); + assertEquals(3, dataTypesConceptMap.size()); + Iterator> dataTypesIter = dataTypesConceptMap.entrySet().iterator(); + + Entry firstDataType = dataTypesIter.next(); + assertEquals(METRICS, firstDataType.getKey().getName()); + JpaToscaDataType firstDataTypeVal = firstDataType.getValue(); + assertEquals(DATATYPE_ROOT, firstDataTypeVal.getDerivedFrom().getName()); + assertEquals(VERSION_000, firstDataTypeVal.getDerivedFrom().getVersion()); + assertEquals(6, firstDataTypeVal.getProperties().size()); + Iterator firstDataTypePropertiesIter = firstDataTypeVal.getProperties().values().iterator(); + + JpaToscaProperty firstDataTypeFirstProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeFirstProperty.getKey().getParentKeyName()); assertEquals("controlLoopSchemaType", firstDataTypeFirstProperty.getKey().getLocalName()); - assertEquals("string", firstDataTypeFirstProperty.getType().getName()); + assertEquals(STRING_TEXT, firstDataTypeFirstProperty.getType().getName()); assertTrue(firstDataTypeFirstProperty.isRequired()); assertEquals("Specifies Control Loop Schema Type for the event Name e.g. VNF, VM", firstDataTypeFirstProperty.getDescription()); - assertTrue(firstDataTypeFirstProperty.getConstraints().size() == 1); - assertEquals("valid_values", firstDataTypeFirstProperty.getConstraints().iterator().next().getKey() - .getLocalName()); - assertEquals("string", firstDataTypeFirstProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertTrue(firstDataTypeFirstProperty.getConstraints().iterator().next() - instanceof ToscaConstraintValidValues); - assertTrue(((ToscaConstraintValidValues)(firstDataTypeFirstProperty.getConstraints().iterator().next())) - .getValidValues().size() == 2); - - ToscaProperty firstDataTypeSecondProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeSecondProperty.getKey() - .getParentKeyName()); + assertEquals(1, firstDataTypeFirstProperty.getConstraints().size()); + assertEquals("org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintValidValues", + firstDataTypeFirstProperty.getConstraints().iterator().next().getClass().getName()); + assertEquals(2, + ((JpaToscaConstraintValidValues) (firstDataTypeFirstProperty.getConstraints().iterator().next())) + .getValidValues().size()); + + JpaToscaProperty firstDataTypeSecondProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeSecondProperty.getKey().getParentKeyName()); assertEquals("eventName", firstDataTypeSecondProperty.getKey().getLocalName()); - assertEquals("string", firstDataTypeSecondProperty.getType().getName()); + assertEquals(STRING_TEXT, firstDataTypeSecondProperty.getType().getName()); assertTrue(firstDataTypeSecondProperty.isRequired()); - assertEquals("Event name to which thresholds need to be applied", firstDataTypeSecondProperty - .getDescription()); + assertEquals("Event name to which thresholds need to be applied", firstDataTypeSecondProperty.getDescription()); - ToscaProperty firstDataTypeThirdProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeThirdProperty.getKey() - .getParentKeyName()); + JpaToscaProperty firstDataTypeThirdProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeThirdProperty.getKey().getParentKeyName()); assertEquals("policyName", firstDataTypeThirdProperty.getKey().getLocalName()); - assertEquals("string", firstDataTypeThirdProperty.getType().getName()); + assertEquals(STRING_TEXT, firstDataTypeThirdProperty.getType().getName()); assertTrue(firstDataTypeThirdProperty.isRequired()); assertEquals("TCA Policy Scope Name", firstDataTypeThirdProperty.getDescription()); - ToscaProperty firstDataTypeFourthProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeFourthProperty.getKey() - .getParentKeyName()); + JpaToscaProperty firstDataTypeFourthProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeFourthProperty.getKey().getParentKeyName()); assertEquals("policyScope", firstDataTypeFourthProperty.getKey().getLocalName()); - assertEquals("string", firstDataTypeFourthProperty.getType().getName()); + assertEquals(STRING_TEXT, firstDataTypeFourthProperty.getType().getName()); assertTrue(firstDataTypeFourthProperty.isRequired()); assertEquals("TCA Policy Scope", firstDataTypeFourthProperty.getDescription()); - ToscaProperty firstDataTypeFifthProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeFifthProperty.getKey() - .getParentKeyName()); + JpaToscaProperty firstDataTypeFifthProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeFifthProperty.getKey().getParentKeyName()); assertEquals("policyVersion", firstDataTypeFifthProperty.getKey().getLocalName()); - assertEquals("string", firstDataTypeFifthProperty.getType().getName()); + assertEquals(STRING_TEXT, firstDataTypeFifthProperty.getType().getName()); assertTrue(firstDataTypeFifthProperty.isRequired()); assertEquals("TCA Policy Scope Version", firstDataTypeFifthProperty.getDescription()); - ToscaProperty firstDataTypeSixthProperty = firstDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", firstDataTypeSixthProperty.getKey() - .getParentKeyName()); + JpaToscaProperty firstDataTypeSixthProperty = firstDataTypePropertiesIter.next(); + assertEquals(METRICS, firstDataTypeSixthProperty.getKey().getParentKeyName()); assertEquals("thresholds", firstDataTypeSixthProperty.getKey().getLocalName()); assertEquals("list", firstDataTypeSixthProperty.getType().getName()); assertTrue(firstDataTypeSixthProperty.isRequired()); assertEquals("Thresholds associated with eventName", firstDataTypeSixthProperty.getDescription()); assertNotNull(firstDataTypeSixthProperty.getEntrySchema()); - assertEquals("entry_schema", firstDataTypeSixthProperty.getEntrySchema().getKey().getLocalName()); - assertEquals("list", firstDataTypeSixthProperty.getEntrySchema().getKey().getParentKeyName()); - assertEquals("onap.datatypes.monitoring.thresholds", firstDataTypeSixthProperty.getEntrySchema().getType() - .getName()); - - Entry secondDataType = dataTypesIter.next(); - assertEquals("onap.datatypes.monitoring.tca_policy", secondDataType.getKey().getName()); - ToscaDataType secondDataTypeVal = secondDataType.getValue(); - assertEquals("tosca.datatypes.Root", secondDataTypeVal.getDerivedFrom().getName()); - assertEquals("1.0.0", secondDataTypeVal.getDerivedFrom().getVersion()); - assertTrue(secondDataTypeVal.getProperties().size() == 2); - Iterator secondDataTypePropertiesIter = secondDataTypeVal.getProperties().iterator(); - - ToscaProperty secondDataTypeFirstProperty = secondDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.tca_policy", secondDataTypeFirstProperty.getKey().getParentKeyName()); + assertEquals(THRESHOLDS, firstDataTypeSixthProperty.getEntrySchema().getType().getName()); + + Entry secondDataType = dataTypesIter.next(); + assertEquals(TCA_V1, secondDataType.getKey().getName()); + JpaToscaDataType secondDataTypeVal = secondDataType.getValue(); + assertEquals(DATATYPE_ROOT, secondDataTypeVal.getDerivedFrom().getName()); + assertEquals(VERSION_000, secondDataTypeVal.getDerivedFrom().getVersion()); + assertEquals(2, secondDataTypeVal.getProperties().size()); + Iterator secondDataTypePropertiesIter = secondDataTypeVal.getProperties().values().iterator(); + + JpaToscaProperty secondDataTypeFirstProperty = secondDataTypePropertiesIter.next(); + assertEquals(TCA_V1, secondDataTypeFirstProperty.getKey().getParentKeyName()); assertEquals("domain", secondDataTypeFirstProperty.getKey().getLocalName()); - assertEquals("string", secondDataTypeFirstProperty.getType().getName()); + assertEquals(STRING_TEXT, secondDataTypeFirstProperty.getType().getName()); assertTrue(secondDataTypeFirstProperty.isRequired()); assertEquals("Domain name to which TCA needs to be applied", secondDataTypeFirstProperty.getDescription()); assertEquals("measurementsForVfScaling", secondDataTypeFirstProperty.getDefaultValue()); - assertTrue(secondDataTypeFirstProperty.getConstraints().size() == 1); - assertEquals("string", secondDataTypeFirstProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertEquals("equal", secondDataTypeFirstProperty.getConstraints().iterator().next().getKey().getLocalName()); - assertTrue(secondDataTypeFirstProperty.getConstraints().iterator().next() - instanceof ToscaConstraintLogicalString); - assertEquals("measurementsForVfScaling", ((ToscaConstraintLogicalString)(secondDataTypeFirstProperty - .getConstraints().iterator().next())).getCompareToString()); - - ToscaProperty secondDataTypeSecondProperty = secondDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.tca_policy", secondDataTypeSecondProperty.getKey().getParentKeyName()); + assertEquals(1, secondDataTypeFirstProperty.getConstraints().size()); + assertTrue(secondDataTypeFirstProperty.getConstraints().iterator().next() instanceof JpaToscaConstraintLogical); + assertEquals("measurementsForVfScaling", + ((JpaToscaConstraintLogical) (secondDataTypeFirstProperty.getConstraints().iterator().next())) + .getCompareTo()); + + JpaToscaProperty secondDataTypeSecondProperty = secondDataTypePropertiesIter.next(); + assertEquals(TCA_V1, secondDataTypeSecondProperty.getKey().getParentKeyName()); assertEquals("metricsPerEventName", secondDataTypeSecondProperty.getKey().getLocalName()); assertEquals("list", secondDataTypeSecondProperty.getType().getName()); assertTrue(secondDataTypeSecondProperty.isRequired()); assertEquals("Contains eventName and threshold details that need to be applied to given eventName", secondDataTypeSecondProperty.getDescription()); assertNotNull(secondDataTypeSecondProperty.getEntrySchema()); - assertEquals("list", secondDataTypeSecondProperty.getEntrySchema().getKey().getParentKeyName()); - assertEquals("onap.datatypes.monitoring.metricsPerEventName", - secondDataTypeSecondProperty.getEntrySchema().getType().getName()); - assertEquals("entry_schema", secondDataTypeSecondProperty.getEntrySchema().getKey().getLocalName()); - - Entry thirdDataType = dataTypesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataType.getKey().getName()); - ToscaDataType thirdDataTypeVal = thirdDataType.getValue(); - assertEquals("tosca.datatypes.Root", thirdDataTypeVal.getDerivedFrom().getName()); - assertEquals("1.0.0", thirdDataTypeVal.getDerivedFrom().getVersion()); - assertTrue(thirdDataTypeVal.getProperties().size() == 7); - Iterator thirdDataTypePropertiesIter = thirdDataTypeVal.getProperties().iterator(); - - ToscaProperty thirdDataTypeFirstProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeFirstProperty.getKey().getParentKeyName()); + assertEquals(METRICS, secondDataTypeSecondProperty.getEntrySchema().getType().getName()); + + Entry thirdDataType = dataTypesIter.next(); + assertEquals(THRESHOLDS, thirdDataType.getKey().getName()); + JpaToscaDataType thirdDataTypeVal = thirdDataType.getValue(); + assertEquals(DATATYPE_ROOT, thirdDataTypeVal.getDerivedFrom().getName()); + assertEquals(VERSION_000, thirdDataTypeVal.getDerivedFrom().getVersion()); + assertEquals(7, thirdDataTypeVal.getProperties().size()); + Iterator thirdDataTypePropertiesIter = thirdDataTypeVal.getProperties().values().iterator(); + + JpaToscaProperty thirdDataTypeFirstProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeFirstProperty.getKey().getParentKeyName()); assertEquals("closedLoopControlName", thirdDataTypeFirstProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeFirstProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeFirstProperty.getType().getName()); assertTrue(thirdDataTypeFirstProperty.isRequired()); - assertEquals("Closed Loop Control Name associated with the threshold", thirdDataTypeFirstProperty - .getDescription()); + assertEquals("Closed Loop Control Name associated with the threshold", + thirdDataTypeFirstProperty.getDescription()); - ToscaProperty thirdDataTypeSecondProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeSecondProperty.getKey().getParentKeyName()); + JpaToscaProperty thirdDataTypeSecondProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeSecondProperty.getKey().getParentKeyName()); assertEquals("closedLoopEventStatus", thirdDataTypeSecondProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeSecondProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeSecondProperty.getType().getName()); assertTrue(thirdDataTypeSecondProperty.isRequired()); assertEquals("Closed Loop Event Status of the threshold", thirdDataTypeSecondProperty.getDescription()); assertNotNull(thirdDataTypeSecondProperty.getConstraints()); - assertTrue(thirdDataTypeSecondProperty.getConstraints().size() == 1); - assertEquals("string", thirdDataTypeSecondProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertEquals("valid_values", thirdDataTypeSecondProperty.getConstraints().iterator().next().getKey() - .getLocalName()); - assertTrue(thirdDataTypeSecondProperty.getConstraints().iterator().next() - instanceof ToscaConstraintValidValues); - assertTrue(((ToscaConstraintValidValues)(thirdDataTypeSecondProperty.getConstraints().iterator().next())) - .getValidValues().size() == 2); - - ToscaProperty thirdDataTypeThirdProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeThirdProperty.getKey().getParentKeyName()); + assertEquals(1, thirdDataTypeSecondProperty.getConstraints().size()); + assertEquals("JpaToscaConstraintValidValues(validValues=[ONSET, ABATED])", + thirdDataTypeSecondProperty.getConstraints().iterator().next().toString()); + assertTrue(thirdDataTypeSecondProperty.getConstraints().iterator() + .next() instanceof JpaToscaConstraintValidValues); + assertEquals(2, + ((JpaToscaConstraintValidValues) (thirdDataTypeSecondProperty.getConstraints().iterator().next())) + .getValidValues().size()); + + JpaToscaProperty thirdDataTypeThirdProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeThirdProperty.getKey().getParentKeyName()); assertEquals("direction", thirdDataTypeThirdProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeThirdProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeThirdProperty.getType().getName()); assertTrue(thirdDataTypeThirdProperty.isRequired()); assertEquals("Direction of the threshold", thirdDataTypeThirdProperty.getDescription()); assertNotNull(thirdDataTypeThirdProperty.getConstraints()); - assertTrue(thirdDataTypeThirdProperty.getConstraints().size() == 1); - assertEquals("string", thirdDataTypeThirdProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertEquals("valid_values", thirdDataTypeThirdProperty.getConstraints().iterator().next().getKey() - .getLocalName()); - assertTrue(((ToscaConstraintValidValues)(thirdDataTypeThirdProperty.getConstraints().iterator().next())) - .getValidValues().size() == 5); - - ToscaProperty thirdDataTypeFourthProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeFourthProperty.getKey().getParentKeyName()); + assertEquals(1, thirdDataTypeThirdProperty.getConstraints().size()); + assertEquals( + "JpaToscaConstraintValidValues(validValues=[LESS, LESS_OR_EQUAL, GREATER, GREATER_OR_EQUAL, EQUAL])", + thirdDataTypeThirdProperty.getConstraints().iterator().next().toString()); + assertEquals(5, + ((JpaToscaConstraintValidValues) (thirdDataTypeThirdProperty.getConstraints().iterator().next())) + .getValidValues().size()); + + JpaToscaProperty thirdDataTypeFourthProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeFourthProperty.getKey().getParentKeyName()); assertEquals("fieldPath", thirdDataTypeFourthProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeFourthProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeFourthProperty.getType().getName()); assertTrue(thirdDataTypeFourthProperty.isRequired()); assertEquals("Json field Path as per CEF message which needs to be analyzed for TCA", thirdDataTypeFourthProperty.getDescription()); assertNotNull(thirdDataTypeFourthProperty.getConstraints()); - assertTrue(thirdDataTypeFourthProperty.getConstraints().size() == 1); - assertEquals("string", thirdDataTypeFourthProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertEquals("valid_values", thirdDataTypeFourthProperty.getConstraints().iterator().next().getKey() - .getLocalName()); - assertTrue(((ToscaConstraintValidValues)(thirdDataTypeFourthProperty.getConstraints().iterator().next())) - .getValidValues().size() == 43); - - ToscaProperty thirdDataTypeFifthProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeFifthProperty.getKey().getParentKeyName()); + assertEquals(1, thirdDataTypeFourthProperty.getConstraints().size()); + assertEquals(43, + ((JpaToscaConstraintValidValues) (thirdDataTypeFourthProperty.getConstraints().iterator().next())) + .getValidValues().size()); + + JpaToscaProperty thirdDataTypeFifthProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeFifthProperty.getKey().getParentKeyName()); assertEquals("severity", thirdDataTypeFifthProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeFifthProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeFifthProperty.getType().getName()); assertTrue(thirdDataTypeFifthProperty.isRequired()); assertEquals("Threshold Event Severity", thirdDataTypeFifthProperty.getDescription()); assertNotNull(thirdDataTypeFifthProperty.getConstraints()); - assertTrue(thirdDataTypeFifthProperty.getConstraints().size() == 1); - assertEquals("string", thirdDataTypeFifthProperty.getConstraints().iterator().next().getKey() - .getParentKeyName()); - assertEquals("valid_values", thirdDataTypeFifthProperty.getConstraints().iterator().next().getKey() - .getLocalName()); - assertTrue(((ToscaConstraintValidValues)(thirdDataTypeFifthProperty.getConstraints().iterator().next())) - .getValidValues().size() == 5);; - - ToscaProperty thirdDataTypeSixthProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeSixthProperty.getKey().getParentKeyName()); + assertEquals(1, thirdDataTypeFifthProperty.getConstraints().size()); + assertEquals("JpaToscaConstraintValidValues(validValues=[CRITICAL, MAJOR, MINOR, WARNING, NORMAL])", + thirdDataTypeFifthProperty.getConstraints().iterator().next().toString()); + assertEquals(5, + ((JpaToscaConstraintValidValues) (thirdDataTypeFifthProperty.getConstraints().iterator().next())) + .getValidValues().size()); + + JpaToscaProperty thirdDataTypeSixthProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeSixthProperty.getKey().getParentKeyName()); assertEquals("thresholdValue", thirdDataTypeSixthProperty.getKey().getLocalName()); assertEquals("integer", thirdDataTypeSixthProperty.getType().getName()); assertTrue(thirdDataTypeSixthProperty.isRequired()); - assertEquals("Threshold value for the field Path inside CEF message", thirdDataTypeSixthProperty - .getDescription()); + assertEquals("Threshold value for the field Path inside CEF message", + thirdDataTypeSixthProperty.getDescription()); - ToscaProperty thirdDataTypeSeventhProperty = thirdDataTypePropertiesIter.next(); - assertEquals("onap.datatypes.monitoring.thresholds", thirdDataTypeSeventhProperty.getKey().getParentKeyName()); + JpaToscaProperty thirdDataTypeSeventhProperty = thirdDataTypePropertiesIter.next(); + assertEquals(THRESHOLDS, thirdDataTypeSeventhProperty.getKey().getParentKeyName()); assertEquals("version", thirdDataTypeSeventhProperty.getKey().getLocalName()); - assertEquals("string", thirdDataTypeSeventhProperty.getType().getName()); + assertEquals(STRING_TEXT, thirdDataTypeSeventhProperty.getType().getName()); assertTrue(thirdDataTypeSeventhProperty.isRequired()); assertEquals("Version number associated with the threshold", thirdDataTypeSeventhProperty.getDescription()); } - private void verifyCollectorInputDeserialization(ToscaServiceTemplate serviceTemplate) { + private void verifyCollectorInputDeserialization(JpaToscaServiceTemplate serviceTemplate) { // 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("tosca_simple_yaml_1_0_0", serviceTemplate.getToscaDefinitionsVersion()); + assertEquals("tosca_simple_yaml_1_1_0", serviceTemplate.getToscaDefinitionsVersion()); // Check policy_types - Map policyTypesConceptMap = serviceTemplate.getPolicyTypes().getConceptMap(); - assertTrue(policyTypesConceptMap.size() == 2); - Iterator> policyTypesIter = policyTypesConceptMap.entrySet().iterator(); + Map policyTypesConceptMap = serviceTemplate.getPolicyTypes().getConceptMap(); + assertEquals(2, policyTypesConceptMap.size()); + Iterator> policyTypesIter = policyTypesConceptMap.entrySet().iterator(); - Entry firstPolicyType = policyTypesIter.next(); - assertEquals("onap.policies.Monitoring", firstPolicyType.getKey().getName()); - assertEquals("1.0.0", firstPolicyType.getKey().getVersion()); + Entry firstPolicyType = policyTypesIter.next(); + assertEquals(MONITORING, firstPolicyType.getKey().getName()); + assertEquals(VERSION_100, firstPolicyType.getKey().getVersion()); assertEquals("tosca.policies.Root", firstPolicyType.getValue().getDerivedFrom().getName()); - assertEquals("a base policy type for all policies that govern monitoring provision", + assertEquals("a base policy type for all policies that govern monitoring provisioning", firstPolicyType.getValue().getDescription()); - Entry secondPolicyType = policyTypesIter.next(); - assertEquals("onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server", - secondPolicyType.getKey().getName()); - assertEquals("1.0.0", secondPolicyType.getKey().getVersion()); - assertEquals("policy.nodes.Root", secondPolicyType.getValue().getDerivedFrom().getName()); - assertTrue(secondPolicyType.getValue().getProperties().size() == 2); + Entry secondPolicyType = policyTypesIter.next(); + assertEquals(DCAE, secondPolicyType.getKey().getName()); + assertEquals(VERSION_100, secondPolicyType.getKey().getVersion()); + assertEquals("onap.policies.Monitoring", secondPolicyType.getValue().getDerivedFrom().getName()); + assertEquals(2, secondPolicyType.getValue().getProperties().size()); - Iterator propertiesIter = secondPolicyType.getValue().getProperties().iterator(); + Iterator propertiesIter = secondPolicyType.getValue().getProperties().values().iterator(); - ToscaProperty firstProperty = propertiesIter.next(); - assertEquals("onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server", - firstProperty.getKey().getParentKeyName()); - assertEquals("1.0.0", firstProperty.getKey().getParentKeyVersion()); + JpaToscaProperty firstProperty = propertiesIter.next(); + assertEquals(DCAE, firstProperty.getKey().getParentKeyName()); + assertEquals(VERSION_100, firstProperty.getKey().getParentKeyVersion()); assertEquals("buscontroller_feed_publishing_endpoint", firstProperty.getKey().getLocalName()); - assertEquals("string", firstProperty.getType().getName()); + assertEquals(STRING_TEXT, firstProperty.getType().getName()); assertEquals("DMAAP Bus Controller feed endpoint", firstProperty.getDescription()); - ToscaProperty secondProperty = propertiesIter.next(); - assertEquals("onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server", - secondProperty.getKey().getParentKeyName()); - assertEquals("1.0.0", secondProperty.getKey().getParentKeyVersion()); + JpaToscaProperty secondProperty = propertiesIter.next(); + assertEquals(DCAE, secondProperty.getKey().getParentKeyName()); + assertEquals(VERSION_100, secondProperty.getKey().getParentKeyVersion()); assertEquals("datafile.policy", secondProperty.getKey().getLocalName()); - assertEquals("string", secondProperty.getType().getName()); + assertEquals(STRING_TEXT, secondProperty.getType().getName()); assertEquals("datafile Policy JSON as string", secondProperty.getDescription()); } - private String serializeMonitoringServiceTemplate(ToscaServiceTemplate serviceTemplate) { - return gson.toJson(serviceTemplate); + private String serializeMonitoringServiceTemplate(JpaToscaServiceTemplate serviceTemplate) throws CoderException { + ToscaServiceTemplate toscaServiceTemplate = serviceTemplate.toAuthorative(); + return coder.encode(toscaServiceTemplate); } -} \ No newline at end of file +}