diff options
Diffstat (limited to 'models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java')
-rw-r--r-- | models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java | 108 |
1 files changed, 44 insertions, 64 deletions
diff --git a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java b/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java index 0ecf8a046..22722186c 100644 --- a/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java +++ b/models-provider/src/test/java/org/onap/policy/models/provider/impl/PolicyTypePersistenceTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. + * Copyright (C) 2019-2020 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,29 +20,24 @@ package org.onap.policy.models.provider.impl; +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 java.util.Base64; -import java.util.List; import java.util.Set; -import lombok.NonNull; - import org.junit.After; import org.junit.Before; import org.junit.Test; -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.PfModelException; import org.onap.policy.models.provider.PolicyModelsProvider; import org.onap.policy.models.provider.PolicyModelsProviderFactory; import org.onap.policy.models.provider.PolicyModelsProviderParameters; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter; +import org.onap.policy.models.tosca.authorative.concepts.ToscaEntityKey; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; -import org.yaml.snakeyaml.Yaml; /** * Test persistence of monitoring policies to and from the database. @@ -50,8 +45,7 @@ import org.yaml.snakeyaml.Yaml; * @author Liam Fallon (liam.fallon@est.tech) */ public class PolicyTypePersistenceTest { - private StandardCoder standardCoder; - + private YamlJsonTranslator yamlTranslator = new YamlJsonTranslator(); private PolicyModelsProvider databaseProvider; /** @@ -73,14 +67,6 @@ public class PolicyTypePersistenceTest { databaseProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters); } - /** - * Set up standard coder. - */ - @Before - public void setupStandardCoder() { - standardCoder = new StandardCoder(); - } - @After public void teardown() throws Exception { databaseProvider.close(); @@ -90,60 +76,54 @@ public class PolicyTypePersistenceTest { public void testPolicyTypePersistence() throws Exception { Set<String> policyTypeDirectoryContents = ResourceUtils.getDirectoryContents("policytypes"); + ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate(); + for (String policyTypeFilePath : policyTypeDirectoryContents) { String policyTypeString = ResourceUtils.getResourceAsString(policyTypeFilePath); - testYamlStringPolicyTypePersistence(policyTypeString); - } - } - - private void testYamlStringPolicyTypePersistence(final String policyTypeString) throws Exception { - Object yamlObject = new Yaml().load(policyTypeString); - String yamlAsJsonString = new StandardCoder().encode(yamlObject); - testJsonStringPolicyTypePersistence(yamlAsJsonString); - } - - /** - * Check persistence of a policy. - * - * @param policyTypeString the policy as a string - * @throws Exception any exception thrown - */ - public void testJsonStringPolicyTypePersistence(@NonNull final String policyTypeString) throws Exception { - ToscaServiceTemplate serviceTemplate = standardCoder.decode(policyTypeString, ToscaServiceTemplate.class); - - assertNotNull(serviceTemplate); - ToscaPolicyType inPolicyType = serviceTemplate.getPolicyTypes().values().iterator().next(); - - databaseProvider.createPolicyTypes(serviceTemplate); - checkPolicyTypePersistence(inPolicyType); - - databaseProvider.updatePolicyTypes(serviceTemplate); - checkPolicyTypePersistence(inPolicyType); - } + ToscaServiceTemplate foundPolicyTypeSt = + yamlTranslator.fromYaml(policyTypeString, ToscaServiceTemplate.class); + + serviceTemplate.setDerivedFrom(foundPolicyTypeSt.getDerivedFrom()); + serviceTemplate.setDescription(foundPolicyTypeSt.getDescription()); + serviceTemplate.setMetadata(foundPolicyTypeSt.getMetadata()); + serviceTemplate.setName(foundPolicyTypeSt.getName()); + serviceTemplate.setToscaDefinitionsVersion(foundPolicyTypeSt.getToscaDefinitionsVersion()); + serviceTemplate.setToscaTopologyTemplate(foundPolicyTypeSt.getToscaTopologyTemplate()); + serviceTemplate.setVersion(foundPolicyTypeSt.getVersion()); + + if (foundPolicyTypeSt.getDataTypes() != null) { + if (serviceTemplate.getDataTypes() == null) { + serviceTemplate.setDataTypes(foundPolicyTypeSt.getDataTypes()); + } else { + serviceTemplate.getDataTypes().putAll(foundPolicyTypeSt.getDataTypes()); + } + } + + if (serviceTemplate.getPolicyTypes() == null) { + serviceTemplate.setPolicyTypes(foundPolicyTypeSt.getPolicyTypes()); + } else { + serviceTemplate.getPolicyTypes().putAll(foundPolicyTypeSt.getPolicyTypes()); + } + } - private void checkPolicyTypePersistence(ToscaPolicyType inPolicyType) throws PfModelException { - List<ToscaPolicyType> policyTypeList = - databaseProvider.getPolicyTypeList(inPolicyType.getName(), inPolicyType.getVersion()); + assertThatCode(() -> databaseProvider.createPolicyTypes(serviceTemplate)).doesNotThrowAnyException(); - policyTypeList = databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder() - .name(inPolicyType.getName()).version(inPolicyType.getVersion()).build()); + ToscaEntityKey resourceOptimizationPtKey = + new ToscaEntityKey("onap.policies.optimization.resource.OptimizationPolicy", "1.0.0"); - assertEquals(1, policyTypeList.size()); - assertEquals(inPolicyType.getName(), policyTypeList.get(0).getName()); + ToscaServiceTemplate resOptPolicyTypeSt = databaseProvider.getPolicyTypes(resourceOptimizationPtKey.getName(), + resourceOptimizationPtKey.getVersion()); - policyTypeList = databaseProvider - .getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().name(inPolicyType.getName()).build()); + assertEquals(3, resOptPolicyTypeSt.getPolicyTypesAsMap().size()); + assertTrue(resOptPolicyTypeSt.getPolicyTypesAsMap().containsKey(resourceOptimizationPtKey)); - assertEquals(1, policyTypeList.size()); - assertEquals(inPolicyType.getName(), policyTypeList.get(0).getName()); + ToscaEntityKey resourcePtKey = new ToscaEntityKey("onap.policies.optimization.Resource", "1.0.0"); + assertTrue(resOptPolicyTypeSt.getPolicyTypesAsMap().containsKey(resourcePtKey)); - policyTypeList = databaseProvider.getFilteredPolicyTypeList(ToscaPolicyTypeFilter.builder().build()); - assertTrue(policyTypeList.size() <= 3); - assertEquals(inPolicyType.getName(), policyTypeList.get(0).getName()); + ToscaEntityKey optimizationPtKey = new ToscaEntityKey("onap.policies.Optimization", "1.0.0"); + assertTrue(resOptPolicyTypeSt.getPolicyTypesAsMap().containsKey(optimizationPtKey)); - for (ToscaPolicyType policyType : databaseProvider.getPolicyTypeList(null, null)) { - databaseProvider.deletePolicyType(policyType.getName(), policyType.getVersion()); - } + assertEquals(2, resOptPolicyTypeSt.getDataTypesAsMap().size()); } } |