X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-provider%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fprovider%2Fimpl%2FPolicyTypePersistenceTest.java;h=978a3034610d20b9bf53a1b1d36395dbdc6260ab;hb=refs%2Fchanges%2F29%2F133129%2F4;hp=6cda57b605dbae8ba1516316c7c494347c249152;hpb=275a3c5707c721d6fb020c9632f7a545cbc33b81;p=policy%2Fmodels.git 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 6cda57b60..978a30346 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,8 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 Nordix Foundation. + * Copyright (C) 2019-2021,2023 Nordix Foundation. + * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Modifications Copyright (C) 2021 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. @@ -21,15 +23,13 @@ package org.onap.policy.models.provider.impl; import static org.assertj.core.api.Assertions.assertThatCode; -import static org.awaitility.Awaitility.await; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.util.Base64; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -40,6 +40,7 @@ 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.ToscaEntityKey; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; /** @@ -61,10 +62,19 @@ public class PolicyTypePersistenceTest { // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB PolicyModelsProviderParameters parameters = new PolicyModelsProviderParameters(); - parameters.setDatabaseDriver("org.h2.Driver"); - parameters.setDatabaseUrl("jdbc:h2:mem:testdb"); + + if (System.getProperty("USE-MARIADB") != null) { + parameters.setDatabaseDriver("org.mariadb.jdbc.Driver"); + parameters.setDatabaseUrl("jdbc:mariadb://localhost:3306/policy"); + parameters.setDatabaseType("org.hibernate.dialect.MariaDBDialect"); + } else { + parameters.setDatabaseDriver("org.h2.Driver"); + parameters.setDatabaseUrl("jdbc:h2:mem:PolicyToscaPersistenceTest"); + parameters.setDatabaseType("org.hibernate.dialect.H2Dialect"); + } + parameters.setDatabaseUser("policy"); - parameters.setDatabasePassword(Base64.getEncoder().encodeToString("P01icY".getBytes())); + parameters.setDatabasePassword("P01icY"); parameters.setPersistenceUnit("ToscaConceptTest"); databaseProvider = new PolicyModelsProviderFactory().createPolicyModelsProvider(parameters); @@ -114,6 +124,7 @@ public class PolicyTypePersistenceTest { for (int i = 0; i < 10; i++) { new Thread() { + @Override public void run() { assertThatCode(() -> databaseProvider.createPolicyTypes(serviceTemplate)) .doesNotThrowAnyException(); @@ -140,5 +151,32 @@ public class PolicyTypePersistenceTest { assertTrue(resOptPolicyTypeSt.getPolicyTypesAsMap().containsKey(optimizationPtKey)); assertEquals(2, resOptPolicyTypeSt.getDataTypesAsMap().size()); + + deleteUnreferencedPolicyTypes(); + + assertThatThrownBy(() -> { + databaseProvider.getPolicyTypes(null, null); + }).hasMessageContaining("policy types for null:null do not exist"); + } + + private void deleteUnreferencedPolicyTypes() throws PfModelException { + ToscaServiceTemplate allPolicyTypes = databaseProvider.getPolicyTypes(null, null); + + boolean deleteFailedDueToReference = false; + + for (ToscaPolicyType policyType : allPolicyTypes.getPolicyTypes().values()) { + try { + ToscaServiceTemplate deletedServiceTemplate = + databaseProvider.deletePolicyType(policyType.getName(), policyType.getVersion()); + assertEquals(1, deletedServiceTemplate.getPolicyTypesAsMap().size()); + } catch (Exception pfModelRuntimeException) { + assertTrue(pfModelRuntimeException.getMessage().contains("is in use, it is referenced in policy type")); + deleteFailedDueToReference = true; + } + } + + if (deleteFailedDueToReference) { + deleteUnreferencedPolicyTypes(); + } } }