summaryrefslogtreecommitdiffstats
path: root/models-tosca/src/test/java
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2020-12-03 12:40:58 +0000
committerliamfallon <liam.fallon@est.tech>2020-12-03 15:12:41 +0000
commitdb2118d4a635f2d116d4a5cd6714730600e47b6c (patch)
tree03208d2db4fad9f7eefd687140641fbfbdda2880 /models-tosca/src/test/java
parentd0e612882c86222dbc1560b1282de42cd245a905 (diff)
Add generic methods to TOSCA providers and utils
Generic methods for getting ehtire service templates are added to the TOSCA providers in models-tosca. These are needed to read service tempaltes containing entities that are not policy related. Issue-ID: POLICY-2900 Change-Id: If4c646037f51f8a18b66257426accc330905acf9 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'models-tosca/src/test/java')
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java202
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java6
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java37
3 files changed, 245 insertions, 0 deletions
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java
new file mode 100644
index 000000000..53e8311ee
--- /dev/null
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java
@@ -0,0 +1,202 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.models.tosca.authorative.provider;
+
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import com.google.gson.GsonBuilder;
+import java.util.List;
+import java.util.Properties;
+import org.apache.commons.lang3.ObjectUtils;
+import org.eclipse.persistence.config.PersistenceUnitProperties;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+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.dao.DaoParameters;
+import org.onap.policy.models.dao.PfDao;
+import org.onap.policy.models.dao.PfDaoFactory;
+import org.onap.policy.models.dao.impl.DefaultPfDao;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType;
+import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * Test of the {@link AuthorativeToscaProvider} class.
+ *
+ * @author Liam Fallon (liam.fallon@est.tech)
+ */
+public class AuthorativeToscaProviderGenericTest {
+ private static final String POLICY_NO_VERSION_VERSION1 = "onap.policies.NoVersion:0.0.1";
+ private static final String POLICY_NO_VERSION = "onap.policies.NoVersion";
+ private static final String DAO_IS_NULL = "^dao is marked .*on.*ull but is null$";
+ private static final String VERSION_001 = "0.0.1";
+ private static String yamlAsJsonString;
+ private PfDao pfDao;
+ private StandardCoder standardCoder;
+
+ /**
+ * Read the policy type definition.
+ *
+ * @throws Exception on errors
+ */
+ @BeforeClass
+ public static void readPolicyDefinition() {
+ String yamlString = ResourceUtils.getResourceAsString("src/test/resources/onap.policies.NoVersion.yaml");
+
+ Object yamlObject = new Yaml().load(yamlString);
+ yamlAsJsonString = new GsonBuilder().setPrettyPrinting().create().toJson(yamlObject);
+ }
+
+ /**
+ * Set up the DAO towards the database.
+ *
+ * @throws Exception on database errors
+ */
+ @Before
+ public void setupDao() throws Exception {
+ final DaoParameters daoParameters = new DaoParameters();
+ daoParameters.setPluginClass(DefaultPfDao.class.getName());
+
+ daoParameters.setPersistenceUnit("ToscaConceptTest");
+
+ Properties jdbcProperties = new Properties();
+ jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_USER, "policy");
+ jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_PASSWORD, "P01icY");
+
+ // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB
+ jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_DRIVER, "org.h2.Driver");
+ jdbcProperties.setProperty(PersistenceUnitProperties.JDBC_URL, "jdbc:h2:mem:testdb");
+
+ daoParameters.setJdbcProperties(jdbcProperties);
+
+ pfDao = new PfDaoFactory().createPfDao(daoParameters);
+ pfDao.init(daoParameters);
+ }
+
+ /**
+ * Set up GSON.
+ */
+ @Before
+ public void setupGson() {
+ standardCoder = new StandardCoder();
+ }
+
+ @After
+ public void teardown() {
+ pfDao.close();
+ }
+
+ @Test
+ public void testCreateGetDelete() throws Exception {
+ assertThatThrownBy(() -> {
+ new AuthorativeToscaProvider().getServiceTemplate(null, null, null);
+ }).hasMessageMatching(DAO_IS_NULL);
+
+ ToscaServiceTemplate toscaServiceTemplate = standardCoder.decode(yamlAsJsonString, ToscaServiceTemplate.class);
+
+ assertNotNull(toscaServiceTemplate);
+ ToscaServiceTemplate createdServiceTemplate =
+ new AuthorativeToscaProvider().createServiceTemplate(pfDao, toscaServiceTemplate);
+
+ PfConceptKey policyTypeKey = new PfConceptKey(POLICY_NO_VERSION_VERSION1);
+
+ ToscaPolicyType beforePolicyType = toscaServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
+ ToscaPolicyType createdPolicyType = createdServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
+ assertEquals(true, beforePolicyType.getName().equals(createdPolicyType.getName()));
+ assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
+
+ ToscaServiceTemplate gotServiceTemplate = new AuthorativeToscaProvider().getServiceTemplate(pfDao, null, null);
+
+ ToscaPolicyType gotPolicyType = gotServiceTemplate.getPolicyTypes().get(policyTypeKey.getName());
+ assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
+ assertEquals(0, ObjectUtils.compare(beforePolicyType.getDescription(), createdPolicyType.getDescription()));
+
+ List<ToscaPolicyType> gotPolicyTypeList =
+ new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, VERSION_001);
+ assertEquals(2, gotPolicyTypeList.size());
+ assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
+
+ gotPolicyTypeList = new AuthorativeToscaProvider().getPolicyTypeList(pfDao, POLICY_NO_VERSION, null);
+ assertEquals(2, gotPolicyTypeList.size());
+ assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
+
+ gotPolicyTypeList = new AuthorativeToscaProvider().getPolicyTypeList(pfDao, null, null);
+ assertEquals(2, gotPolicyTypeList.size());
+ assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
+
+ gotPolicyTypeList = new AuthorativeToscaProvider().getPolicyTypeList(pfDao, null, VERSION_001);
+ assertEquals(2, gotPolicyTypeList.size());
+ assertEquals(true, beforePolicyType.getName().equals(gotPolicyType.getName()));
+
+ assertThatThrownBy(
+ () -> new AuthorativeToscaProvider().getPolicyTypeList(new DefaultPfDao(), POLICY_NO_VERSION, VERSION_001))
+ .hasMessageContaining("Policy Framework DAO has not been initialized");
+
+ assertTrue(new AuthorativeToscaProvider().getPolicyTypeList(pfDao, "i.dont.Exist", VERSION_001).isEmpty());
+
+ ToscaServiceTemplate deletedServiceTemplate =
+ new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, "Dummy", "0.0.1");
+ assertEquals(2, deletedServiceTemplate.getPolicyTypes().size());
+ }
+
+ @Test
+ public void testNullParameters() throws Exception {
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().getServiceTemplate(null, null, null))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(null, null))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(pfDao, null))
+ .hasMessageMatching("^serviceTemplate is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().createServiceTemplate(null, new ToscaServiceTemplate()))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, null, null))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, null, "0.0.1"))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, "Dummy", null))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(null, "Dummy", "0.0.1"))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, null, null))
+ .hasMessageMatching("^name is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, null, "0.0.1"))
+ .hasMessageMatching("^name is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().deleteServiceTemplate(pfDao, "Dummy", null))
+ .hasMessageMatching("^version is marked .*on.*ull but is null$");
+ }
+}
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java
index 66ed7007a..0e1164598 100644
--- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java
@@ -418,4 +418,10 @@ public class AuthorativeToscaProviderPolicyTypeTest {
new AuthorativeToscaProvider().createPolicyTypes(pfDao, testServiceTemplate);
}).hasMessage("An incoming list of concepts must have at least one entry");
}
+
+ @Test
+ public void testNullParameters() throws Exception {
+ assertThatThrownBy(() -> new AuthorativeToscaProvider().getPolicyTypeList(null, null, null))
+ .hasMessageMatching("^dao is marked .*on.*ull but is null$");
+ }
}
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java
index c597cd4f6..1e18f12d4 100644
--- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java
@@ -840,6 +840,43 @@ public class SimpleToscaProviderTest {
}).hasMessageMatching("^policyKey is marked .*on.*ull but is null$");
}
+ @Test
+ public void testDeleteServiceTemplate() throws PfModelException {
+ assertThatThrownBy(() -> {
+ new SimpleToscaProvider().deleteServiceTemplate(null);
+ }).hasMessageMatching("^dao is marked .*on.*ull but is null$");
+
+ assertThatThrownBy(() -> {
+ new SimpleToscaProvider().deleteServiceTemplate(pfDao);
+ }).hasMessage("service template not found in database");
+
+ JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
+
+ PfConceptKey dataType0Key = new PfConceptKey("DataType0", "0.0.1");
+ JpaToscaDataType dataType0 = new JpaToscaDataType();
+ dataType0.setKey(dataType0Key);
+ serviceTemplate.setDataTypes(new JpaToscaDataTypes());
+ serviceTemplate.getDataTypes().getConceptMap().put(dataType0Key, dataType0);
+
+ JpaToscaServiceTemplate createdServiceTemplate =
+ new SimpleToscaProvider().createDataTypes(pfDao, serviceTemplate);
+
+ assertEquals(1, createdServiceTemplate.getDataTypes().getConceptMap().size());
+ assertEquals(dataType0, createdServiceTemplate.getDataTypes().get(dataType0Key));
+ assertEquals(null, createdServiceTemplate.getDataTypes().get(dataType0Key).getDescription());
+
+ JpaToscaServiceTemplate deletedServiceTemplate = new SimpleToscaProvider().deleteServiceTemplate(pfDao);
+
+ assertEquals(dataType0, deletedServiceTemplate.getDataTypes().get(dataType0Key));
+ }
+
+ @Test
+ public void testNullParameters() {
+ assertThatThrownBy(() -> {
+ new SimpleToscaProvider().getCascadedDataTypes(null, null, null);
+ }).hasMessageMatching("^dbServiceTemplate is marked .*on.*ull but is null$");
+ }
+
private void createPolicyTypes() throws CoderException, PfModelException {
Object yamlObject = new Yaml()
.load(ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml"));