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%2FJpaToscaDataTypesTest.java;h=8f339ef7f8c147a156ca2199e71c674c2d5e4f54;hb=0f18850ed482e71db9d61fa2656e5e84c2f61f74;hp=5421b953ec753d11ba609ccde1fcdba06dbaf57f;hpb=40cdc8e01568d9c8950600ca9d9a5f6ff45e36ab;p=policy%2Fmodels.git diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypesTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypesTest.java index 5421b953e..8f339ef7f 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypesTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaDataTypesTest.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. @@ -21,8 +21,11 @@ package org.onap.policy.models.tosca.simple.concepts; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -30,12 +33,14 @@ import java.util.List; import java.util.Map; import java.util.TreeMap; import org.junit.Test; +import org.onap.policy.common.parameters.BeanValidationResult; import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.Validated; import org.onap.policy.models.tosca.authorative.concepts.ToscaDataType; public class JpaToscaDataTypesTest { - private static final String KEY_IS_NULL = "key is marked @NonNull but is null"; + private static final String KEY_IS_NULL = "key is marked .*on.*ull but is null"; @Test public void testDataTypes() { @@ -44,22 +49,68 @@ public class JpaToscaDataTypesTest { assertNotNull(new JpaToscaDataTypes(new PfConceptKey(), new TreeMap())); assertNotNull(new JpaToscaDataTypes(new JpaToscaDataTypes())); - assertThatThrownBy(() -> new JpaToscaDataTypes((PfConceptKey) null)).hasMessage(KEY_IS_NULL); + assertThatThrownBy(() -> new JpaToscaDataTypes((PfConceptKey) null)).hasMessageMatching(KEY_IS_NULL); assertThatThrownBy(() -> new JpaToscaDataTypes((JpaToscaDataTypes) null)) - .hasMessage("copyConcept is marked @NonNull but is null"); + .hasMessageMatching("copyConcept is marked .*on.*ull but is null"); - assertThatThrownBy(() -> new JpaToscaDataTypes(null, null)).hasMessage(KEY_IS_NULL); + assertThatThrownBy(() -> new JpaToscaDataTypes(null, null)).hasMessageMatching(KEY_IS_NULL); assertThatThrownBy(() -> new JpaToscaDataTypes(new PfConceptKey(), null)) - .hasMessage("conceptMap is marked @NonNull but is null"); + .hasMessageMatching("conceptMap is marked .*on.*ull but is null"); assertThatThrownBy(() -> new JpaToscaDataTypes(null, new TreeMap())) - .hasMessage(KEY_IS_NULL); + .hasMessageMatching(KEY_IS_NULL); + } + @Test + public void testDerivedDataTypes() { List> dtMapList = new ArrayList<>(); dtMapList.add(new LinkedHashMap<>()); - dtMapList.get(0).put("policyType", new ToscaDataType()); + + ToscaDataType dt0 = new ToscaDataType(); + dt0.setName("dt0"); + dt0.setVersion("0.0.1"); + dt0.setDescription("dt0 description"); + + dtMapList.get(0).put("dt0", dt0); assertNotNull(new JpaToscaDataTypes(dtMapList)); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + assertThatThrownBy(() -> new JpaToscaDataTypes(dtMapList).validate(null)) + .hasMessageMatching("fieldName is marked .*on.*ull but is null"); + + dt0.setDerivedFrom(null); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + + dt0.setDerivedFrom("tosca.datatypes.Root"); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + + dt0.setDerivedFrom("some.other.Thing"); + BeanValidationResult result = new JpaToscaDataTypes(dtMapList).validate(""); + assertFalse(result.isValid()); + assertThat(result.getResult()).contains("parent").contains("some.other.Thing:0.0.0") + .contains(Validated.NOT_FOUND); + + dt0.setDerivedFrom(null); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + + ToscaDataType dt1 = new ToscaDataType(); + dt1.setName("dt1"); + dt1.setVersion("0.0.1"); + dt1.setDescription("dt1 description"); + + dtMapList.get(0).put("dt1", dt1); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + + dt1.setDerivedFrom("dt0"); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); + + dt1.setDerivedFrom("dt2"); + result = new JpaToscaDataTypes(dtMapList).validate(""); + assertFalse(result.isValid()); + assertThat(result.getResult()).contains("parent").contains("dt2:0.0.0").contains(Validated.NOT_FOUND); + + dt1.setDerivedFrom("dt0"); + assertTrue(new JpaToscaDataTypes(dtMapList).validate("").isValid()); } }