diff options
Diffstat (limited to 'models-base/src/test')
6 files changed, 243 insertions, 12 deletions
diff --git a/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java b/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java index 0ed04c4e6..3ae7c4c9d 100644 --- a/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java +++ b/models-base/src/test/java/org/onap/policy/models/base/PfConceptContainerTest.java @@ -20,18 +20,23 @@ package org.onap.policy.models.base; +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.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.junit.Test; +import org.onap.policy.models.base.testconcepts.DummyAuthorativeConcept; +import org.onap.policy.models.base.testconcepts.DummyBadPfConceptContainer; import org.onap.policy.models.base.testconcepts.DummyPfConcept; import org.onap.policy.models.base.testconcepts.DummyPfConceptContainer; import org.onap.policy.models.base.testconcepts.DummyPfConceptSub; @@ -44,7 +49,7 @@ import org.onap.policy.models.base.testconcepts.DummyPfConceptSub; public class PfConceptContainerTest { @Test - public void test() { + public void testConceptContainer() { DummyPfConceptContainer container = new DummyPfConceptContainer(); assertNotNull(container); @@ -179,16 +184,38 @@ public class PfConceptContainerTest { assertEquals(conceptKey, returnSet.iterator().next().getKey()); container.getConceptMap().put(conceptKey, new DummyPfConceptSub(conceptKey)); + } - DummyPfConceptContainer exceptionOnCopyContainer = new DummyPfConceptContainer(); - try { - container.copyTo(exceptionOnCopyContainer); - fail("test should throw an exception here"); - } catch (Exception exc) { - assertEquals( - "Failed to create a clone of class \"org.onap.policy.models.base.testconcepts.DummyPfConceptSub\"", - exc.getMessage()); - } + @Test + public void testAuthorative() { + Map<String, DummyAuthorativeConcept> dacMap = new LinkedHashMap<>(); + dacMap.put("name0", new DummyAuthorativeConcept("name0", "1.2.3", "Hello")); + dacMap.put("name1", new DummyAuthorativeConcept("name1", "1.2.3", "Hi")); + dacMap.put("name2", new DummyAuthorativeConcept("name2", "1.2.3", "Howdy")); + + List<Map<String, DummyAuthorativeConcept>> authorativeList = new ArrayList<>(); + authorativeList.add(dacMap); + + DummyPfConceptContainer container = new DummyPfConceptContainer(); + container.fromAuthorative(authorativeList); + + assertEquals("Hello", container.getConceptMap().get(new PfConceptKey("name0:1.2.3")).getDescription()); + assertEquals("Hi", container.getConceptMap().get(new PfConceptKey("name1:1.2.3")).getDescription()); + assertEquals("Howdy", container.getConceptMap().get(new PfConceptKey("name2:1.2.3")).getDescription()); + + List<Map<String, DummyAuthorativeConcept>> outMapList = container.toAuthorative(); + + assertEquals(dacMap, outMapList.get(0)); + + DummyBadPfConceptContainer badContainer = new DummyBadPfConceptContainer(); + assertThatThrownBy(() -> { + badContainer.fromAuthorative(authorativeList); + }).hasMessage("failed to instantiate instance of container concept class"); + + authorativeList.clear(); + assertThatThrownBy(() -> { + container.fromAuthorative(authorativeList); + }).hasMessage("An incoming list of concepts must have at least one entry"); } @Test(expected = NullPointerException.class) diff --git a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyAuthorativeConcept.java b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyAuthorativeConcept.java new file mode 100644 index 000000000..02ff75061 --- /dev/null +++ b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyAuthorativeConcept.java @@ -0,0 +1,52 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 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.base.testconcepts; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import org.onap.policy.models.base.PfNameVersion; + +/** + * Dummy authorative concept. + * + * @author Liam Fallon (liam.fallon@est.tech) + */ +@Data +@NoArgsConstructor +public class DummyAuthorativeConcept implements PfNameVersion { + private String name; + private String version; + private String description; + + /** + * Constructor. + * + * @param name the name + * @param version the version + * @param description the description + */ + public DummyAuthorativeConcept(final String name, final String version, final String description) { + this.name = name; + this.version = version; + this.description = description; + } +} diff --git a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConcept.java b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConcept.java new file mode 100644 index 000000000..05fd5992b --- /dev/null +++ b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConcept.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 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.base.testconcepts; + +import lombok.NonNull; + +import org.onap.policy.models.base.PfConceptKey; + +/** + * Bad dummy concept throws exception on default constructor. + * + * @author Liam Fallon (liam.fallon@est.tech) + */ +public class DummyBadPfConcept extends DummyPfConcept { + private static final long serialVersionUID = 1L; + + public DummyBadPfConcept() { + throw new NumberFormatException(); + } + + /** + * The Key Constructor creates a {@link DummyPfConcept} object with the given concept key. + * + * @param key the key + */ + public DummyBadPfConcept(@NonNull final PfConceptKey key) { + throw new NumberFormatException(); + } + + /** + * Copy constructor. + * + * @param copyConcept the concept to copy from + */ + public DummyBadPfConcept(final DummyBadPfConcept copyConcept) { + throw new NumberFormatException(); + } +} diff --git a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConceptContainer.java b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConceptContainer.java new file mode 100644 index 000000000..c328a01aa --- /dev/null +++ b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyBadPfConceptContainer.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 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.base.testconcepts; + +import java.util.Map; + +import lombok.NonNull; + +import org.onap.policy.models.base.PfConceptContainer; +import org.onap.policy.models.base.PfConceptKey; + +/** + * Dummy container for PF concepts. + * + * @author Liam Fallon (liam.fallon@est.tech) + */ +public class DummyBadPfConceptContainer extends PfConceptContainer<DummyBadPfConcept, DummyAuthorativeConcept> { + private static final long serialVersionUID = -3018432331484294280L; + + + /** + * The Default Constructor creates a {@link DummyBadPfConceptContainer} object with a null artifact key + * and creates an empty concept map. + */ + public DummyBadPfConceptContainer() { + super(); + } + + /** + * The Key Constructor creates a {@link DummyBadPfConceptContainer} object with the given artifact key and + * creates an empty concept map. + * + * @param key the concept key + */ + public DummyBadPfConceptContainer(@NonNull final PfConceptKey key) { + super(key); + } + + /** + * This Constructor creates an concept container with all of its fields defined. + * + * @param key the concept container key + * @param conceptMap the concepts to be stored in the concept container + */ + public DummyBadPfConceptContainer(@NonNull final PfConceptKey key, + @NonNull final Map<PfConceptKey, DummyBadPfConcept> conceptMap) { + super(key, conceptMap); + } + + /** + * Copy constructor. + * + * @param copyConcept the concept to copy from + */ + public DummyBadPfConceptContainer(@NonNull final DummyBadPfConceptContainer copyConcept) { + super(copyConcept); + } + +} diff --git a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConcept.java b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConcept.java index 9fb6b5793..5e74fb2f9 100644 --- a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConcept.java +++ b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConcept.java @@ -30,6 +30,7 @@ import lombok.NonNull; import org.apache.commons.lang3.ObjectUtils; import org.onap.policy.common.utils.validation.Assertions; +import org.onap.policy.models.base.PfAuthorative; import org.onap.policy.models.base.PfConcept; import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfKey; @@ -39,13 +40,31 @@ import org.onap.policy.models.base.PfValidationResult.ValidationResult; @Data @EqualsAndHashCode(callSuper = false) -public class DummyPfConcept extends PfConcept { +public class DummyPfConcept extends PfConcept implements PfAuthorative<DummyAuthorativeConcept> { private static final long serialVersionUID = 1L; @EmbeddedId private PfConceptKey key; private String description; + + @Override + public DummyAuthorativeConcept toAuthorative() { + DummyAuthorativeConcept dac = new DummyAuthorativeConcept(); + dac.setName(key.getName()); + dac.setVersion(key.getVersion()); + dac.setDescription(description); + + return dac; + } + + @Override + public void fromAuthorative(DummyAuthorativeConcept dac) { + key.setName(dac.getName()); + key.setVersion(dac.getVersion()); + description = dac.getDescription(); + } + /** * The Default Constructor creates a {@link DummyPfConcept} object with a null key. */ diff --git a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConceptContainer.java b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConceptContainer.java index ac72ef8f6..45de69e68 100644 --- a/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConceptContainer.java +++ b/models-base/src/test/java/org/onap/policy/models/base/testconcepts/DummyPfConceptContainer.java @@ -32,7 +32,7 @@ import org.onap.policy.models.base.PfConceptKey; * * @author Liam Fallon (liam.fallon@est.tech) */ -public class DummyPfConceptContainer extends PfConceptContainer<DummyPfConcept> { +public class DummyPfConceptContainer extends PfConceptContainer<DummyPfConcept, DummyAuthorativeConcept> { private static final long serialVersionUID = -3018432331484294280L; |