X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-tosca%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Ftosca%2Fsimple%2Fconcepts%2FJpaToscaDataTypeTest.java;h=7399fdc33e1cfd47cd6abe26fd32e6d82e352d9f;hb=0f18850ed482e71db9d61fa2656e5e84c2f61f74;hp=281ddfcee1fe10d63deabcd6732ce13f9fd501f0;hpb=ff4c8525a70ef5b514d803b5093b91e45564f973;p=policy%2Fmodels.git diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypeTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypeTest.java index 281ddfcee..7399fdc33 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypeTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypeTest.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2021 Nordix Foundation. + * Modifications Copyright (C) 2019-2020 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,6 +24,7 @@ package org.onap.policy.models.tosca.simple.concepts; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -31,19 +32,15 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; - import org.junit.Test; import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.PfKey; import org.onap.policy.models.base.PfReferenceKey; -import org.onap.policy.models.base.PfValidationResult; import org.onap.policy.models.tosca.authorative.concepts.ToscaConstraint; import org.onap.policy.models.tosca.authorative.concepts.ToscaDataType; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraint; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaDataType; -import org.onap.policy.models.tosca.simple.concepts.JpaToscaProperty; /** - * DAO test for ToscaDatatype. + * DAO test for JpaToscaDatatype. * * @author Liam Fallon (liam.fallon@est.tech) */ @@ -60,11 +57,14 @@ public class JpaToscaDataTypeTest { assertThatThrownBy(() -> { new JpaToscaDataType((PfConceptKey) null); - }).hasMessage("key is marked @NonNull but is null"); + }).hasMessageMatching("key is marked .*on.*ull but is null"); assertThatThrownBy(() -> new JpaToscaDataType((JpaToscaDataType) null)) - .isInstanceOf(NullPointerException.class); + .isInstanceOf(NullPointerException.class); + } + @Test + public void testDataTypeProperties() { PfConceptKey dtKey = new PfConceptKey("tdt", VERSION_001); JpaToscaDataType tdt = new JpaToscaDataType(dtKey); @@ -76,7 +76,7 @@ public class JpaToscaDataTypeTest { Map properties = new LinkedHashMap<>(); JpaToscaProperty tp = - new JpaToscaProperty(new PfReferenceKey(dtKey, "pr"), new PfConceptKey("type", VERSION_001)); + new JpaToscaProperty(new PfReferenceKey(dtKey, "pr"), new PfConceptKey("type", VERSION_001)); properties.put(tp.getKey().getLocalName(), tp); tdt.setProperties(properties); assertEquals(properties, tdt.getProperties()); @@ -91,16 +91,16 @@ public class JpaToscaDataTypeTest { assertEquals(-1, tdt.compareTo(null)); assertEquals(0, tdt.compareTo(tdt)); - assertFalse(tdt.compareTo(tdt.getKey()) == 0); + assertNotEquals(0, tdt.compareTo(tdt.getKey())); PfConceptKey otherDtKey = new PfConceptKey("otherDt", VERSION_001); JpaToscaDataType otherDt = new JpaToscaDataType(otherDtKey); - assertFalse(tdt.compareTo(otherDt) == 0); + assertNotEquals(0, tdt.compareTo(otherDt)); otherDt.setKey(dtKey); - assertFalse(tdt.compareTo(otherDt) == 0); + assertNotEquals(0, tdt.compareTo(otherDt)); otherDt.setConstraints(constraints); - assertFalse(tdt.compareTo(otherDt) == 0); + assertNotEquals(0, tdt.compareTo(otherDt)); otherDt.setProperties(properties); assertEquals(0, tdt.compareTo(otherDt)); @@ -111,23 +111,30 @@ public class JpaToscaDataTypeTest { tdt.clean(); assertEquals(tdtClone0, tdt); - assertFalse(new JpaToscaDataType().validate(new PfValidationResult()).isValid()); - assertTrue(tdt.validate(new PfValidationResult()).isValid()); + assertFalse(new JpaToscaDataType().validate("").isValid()); + validateJpaToscaDataTypeOperations(tdt); + + assertThatThrownBy(() -> { + tdt.validate(null); + }).hasMessageMatching("fieldName is marked .*on.*ull but is null"); + } + + private void validateJpaToscaDataTypeOperations(JpaToscaDataType tdt) { + assertTrue(tdt.validate("").isValid()); tdt.getConstraints().add(null); - assertFalse(tdt.validate(new PfValidationResult()).isValid()); + assertFalse(tdt.validate("").isValid()); tdt.getConstraints().remove(null); - assertTrue(tdt.validate(new PfValidationResult()).isValid()); + assertTrue(tdt.validate("").isValid()); tdt.getProperties().put(null, null); - assertFalse(tdt.validate(new PfValidationResult()).isValid()); + assertFalse(tdt.validate("").isValid()); tdt.getProperties().remove(null); - assertTrue(tdt.validate(new PfValidationResult()).isValid()); - - assertThatThrownBy(() -> { - tdt.validate(null); - }).hasMessage("resultIn is marked @NonNull but is null"); + assertTrue(tdt.validate("").isValid()); + } + @Test + public void testDataTypeConstraints() { ToscaDataType dat = new ToscaDataType(); dat.setName("name"); dat.setVersion("1.2.3"); @@ -143,4 +150,53 @@ public class JpaToscaDataTypeTest { ToscaDataType datOut = tdta.toAuthorative(); assertNotNull(datOut); } + + @Test + public void testGetReferencedDataTypes() { + JpaToscaDataType dt0 = new JpaToscaDataType(new PfConceptKey("dt0", "0.0.1")); + + assertTrue(dt0.getReferencedDataTypes().isEmpty()); + + dt0.setProperties(new LinkedHashMap<>()); + assertTrue(dt0.getReferencedDataTypes().isEmpty()); + + JpaToscaProperty prop0 = new JpaToscaProperty(new PfReferenceKey(dt0.getKey(), "prop0")); + prop0.setType(new PfConceptKey("string", PfKey.NULL_KEY_VERSION)); + assertTrue(prop0.validate("").isValid()); + + dt0.getProperties().put(prop0.getKey().getLocalName(), prop0); + assertTrue(dt0.getReferencedDataTypes().isEmpty()); + + JpaToscaProperty prop1 = new JpaToscaProperty(new PfReferenceKey(dt0.getKey(), "prop1")); + prop1.setType(new PfConceptKey("the.property.Type0", "0.0.1")); + assertTrue(prop1.validate("").isValid()); + + dt0.getProperties().put(prop1.getKey().getLocalName(), prop1); + assertEquals(1, dt0.getReferencedDataTypes().size()); + + JpaToscaProperty prop2 = new JpaToscaProperty(new PfReferenceKey(dt0.getKey(), "prop2")); + prop2.setType(new PfConceptKey("the.property.Type0", "0.0.1")); + assertTrue(prop2.validate("").isValid()); + + dt0.getProperties().put(prop2.getKey().getLocalName(), prop2); + assertEquals(1, dt0.getReferencedDataTypes().size()); + + JpaToscaProperty prop3 = new JpaToscaProperty(new PfReferenceKey(dt0.getKey(), "prop4")); + prop3.setType(new PfConceptKey("the.property.Type1", "0.0.1")); + prop3.setEntrySchema(new JpaToscaSchemaDefinition()); + prop3.getEntrySchema().setType(new PfConceptKey("the.property.Type3", "0.0.1")); + assertTrue(prop3.validate("").isValid()); + + dt0.getProperties().put(prop3.getKey().getLocalName(), prop3); + assertEquals(3, dt0.getReferencedDataTypes().size()); + + JpaToscaProperty prop4 = new JpaToscaProperty(new PfReferenceKey(dt0.getKey(), "prop4")); + prop4.setType(new PfConceptKey("the.property.Type1", "0.0.1")); + prop4.setEntrySchema(new JpaToscaSchemaDefinition()); + prop4.getEntrySchema().setType(new PfConceptKey("the.property.Type2", "0.0.1")); + assertTrue(prop4.validate("").isValid()); + + dt0.getProperties().put(prop4.getKey().getLocalName(), prop4); + assertEquals(3, dt0.getReferencedDataTypes().size()); + } }