summaryrefslogtreecommitdiffstats
path: root/models-tosca/src/test/java/org/onap
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2020-05-06 16:19:38 +0100
committerliamfallon <liam.fallon@est.tech>2020-05-06 16:27:30 +0100
commit3adbaa909ad1af4f80f7347cdfbce8bcab892db0 (patch)
tree9ae867bf0ed606ab0cb791eb266be5fa120856d4 /models-tosca/src/test/java/org/onap
parent0813923baa10ddd08e8cb3eccff8ac224f2b8aa4 (diff)
Make type and type_version mandatory on policies
Up until now, the "type" and "type_version" fields defaulted to "NULL" and "0.0.0" respectively when they were not specified because the "type_version" field was not always specified on policies in previous releases. In cases where the "type_version" field was not specified, it was assumend that a "0.0.0" version of the policy type existed. In parallel, if the version field was not specified on the policy type, the version was stored as 0.0.0. This behaviour is now changed and the "type" and "type_version" fields are now always mandatory. Issue-ID: POLICY-2538 Change-Id: I4279adfa86f531205879dbb87986453604624032 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'models-tosca/src/test/java/org/onap')
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTest.java20
-rw-r--r--models-tosca/src/test/java/org/onap/policy/models/tosca/simple/provider/SimpleToscaProviderTest.java61
2 files changed, 73 insertions, 8 deletions
diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTest.java
index c5952546a..aeba9bb80 100644
--- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTest.java
+++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyTest.java
@@ -55,9 +55,13 @@ public class JpaToscaPolicyTest {
assertNotNull(new JpaToscaPolicy(new PfConceptKey(), new PfConceptKey()));
assertNotNull(new JpaToscaPolicy(new JpaToscaPolicy()));
- ToscaPolicy pol = new ToscaPolicy();
+ final ToscaPolicy pol = new ToscaPolicy();
pol.setType("type");
- assertNotNull(new JpaToscaPolicy(pol));
+ assertThatThrownBy(() -> {
+ new JpaToscaPolicy(pol);
+ }).hasMessage(
+ "PolicyType version not specified, the version of the PolicyType for this policy must be specified in the "
+ + "type_version field");
assertThatThrownBy(() -> {
new JpaToscaPolicy((PfConceptKey) null);
@@ -170,12 +174,12 @@ public class JpaToscaPolicyTest {
tp.fromAuthorative(null);
}).hasMessageMatching("toscaPolicy is marked .*on.*ull but is null");
- pol = new ToscaPolicy();
- pol.setName("policy");
- pol.setVersion("1.2.3");
- pol.setType("poltype");
- pol.setTypeVersion("2.2.3");
- tp.fromAuthorative(pol);
+ ToscaPolicy pol1 = new ToscaPolicy();
+ pol1.setName("policy");
+ pol1.setVersion("1.2.3");
+ pol1.setType("poltype");
+ pol1.setTypeVersion("2.2.3");
+ tp.fromAuthorative(pol1);
assertEquals("2.2.3", tp.getType().getVersion());
}
}
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 f2da23c02..a258eedea 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
@@ -41,6 +41,7 @@ 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.ToscaPolicy;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.onap.policy.models.tosca.authorative.provider.AuthorativeToscaProvider;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType;
@@ -373,6 +374,66 @@ public class SimpleToscaProviderTest {
}
@Test
+ public void testPolicyCreateTypeAndVersion() throws Exception {
+ ToscaServiceTemplate toscaServiceTemplate =
+ standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);
+
+ createPolicyTypes();
+
+ ToscaPolicy toscaPolicy =
+ toscaServiceTemplate.getToscaTopologyTemplate().getPoliciesAsMap().values().iterator().next();
+
+ JpaToscaServiceTemplate originalServiceTemplate = new JpaToscaServiceTemplate();
+
+ final String originalPolicyType = toscaPolicy.getType();
+ final String originalPolicyTypeVersion = toscaPolicy.getTypeVersion();
+ toscaPolicy.setType(null);
+ toscaPolicy.setTypeVersion(null);
+
+ assertThatThrownBy(() -> {
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+ }).hasMessage("PolicyType type not specified, the type of the PolicyType for this policy must be "
+ + "specified in the type field");
+
+ toscaPolicy.setType("IDontExist");
+ assertThatThrownBy(() -> {
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+ }).hasMessage("PolicyType version not specified, the version of the PolicyType for this policy must be "
+ + "specified in the type_version field");
+
+ toscaPolicy.setTypeVersion("hello");
+ assertThatThrownBy(() -> {
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+ }).hasMessageContaining("value \"hello\", does not match regular expression");
+
+ toscaPolicy.setTypeVersion("99.100.101");
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+
+ assertThatThrownBy(() -> {
+ new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+ }).hasMessageContaining("policy type IDontExist:99.100.101 referenced in policy not found");
+
+ toscaPolicy.setType("IDontExist");
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+
+ toscaPolicy.setType(null);
+
+ assertThatThrownBy(() -> {
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+ }).hasMessage("PolicyType type not specified, the type of the PolicyType for this policy must be "
+ + "specified in the type field");
+
+ toscaPolicy.setType(originalPolicyType);
+ toscaPolicy.setTypeVersion(originalPolicyTypeVersion);
+
+ originalServiceTemplate.fromAuthorative(toscaServiceTemplate);
+ JpaToscaServiceTemplate createdServiceTemplate =
+ new SimpleToscaProvider().createPolicies(pfDao, originalServiceTemplate);
+ assertEquals(originalServiceTemplate.getTopologyTemplate().getPolicies(),
+ createdServiceTemplate.getTopologyTemplate().getPolicies());
+ }
+
+ @Test
public void testPolicyUpdate() throws Exception {
ToscaServiceTemplate toscaServiceTemplate =
standardCoder.decode(ResourceUtils.getResourceAsString(VCPE_INPUT_JSON), ToscaServiceTemplate.class);