diff options
author | waynedunican <wayne.dunican@est.tech> | 2024-07-23 09:23:51 +0100 |
---|---|---|
committer | waynedunican <wayne.dunican@est.tech> | 2024-08-13 08:49:10 +0100 |
commit | b7804abcf865dc58a01bed3f2be4756e731d9288 (patch) | |
tree | 7f6fc3b50622578bb8612de9fe5e5c6adddfaf28 /models-tosca | |
parent | a029ccab07f2dd71286804da620c513da9fdfc0e (diff) |
Improve code coverage and sonar fixes
Increased code coverage to 90%
SONAR - Removed TODO comments
SONAR - Added NOSONAR where appropriate
SONAR - Replaced stream.Collect() with stream.toList() where applicable
SONAR - Made variables serializable or transient to comply with sonar rules
Issue-ID: POLICY-5069
Change-Id: Ife256eaf4e6f427fe40b138bacc6f112dc5bcea4
Signed-off-by: waynedunican <wayne.dunican@est.tech>
Diffstat (limited to 'models-tosca')
13 files changed, 243 insertions, 34 deletions
diff --git a/models-tosca/pom.xml b/models-tosca/pom.xml index 9fbda40d8..3397316ab 100644 --- a/models-tosca/pom.xml +++ b/models-tosca/pom.xml @@ -81,5 +81,10 @@ <artifactId>openpojo</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <scope>test</scope> + </dependency> </dependencies> </project> diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilter.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilter.java index d6f3a6815..a5a800587 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilter.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilter.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2021 Nordix Foundation. + * Copyright (C) 2019-2021, 2024 Nordix Foundation. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,7 +22,6 @@ package org.onap.policy.models.tosca.authorative.concepts; import java.util.List; -import java.util.stream.Collectors; import lombok.Builder; import lombok.Data; import lombok.NonNull; @@ -52,7 +51,7 @@ public class ToscaEntityFilter<T extends ToscaEntity> implements PfObjectFilter< .filter(p -> filterString(p.getName(), name)) .filter(p -> LATEST_VERSION.equals(version) || filterString(p.getVersion(), version)) - .collect(Collectors.toList()); + .toList(); // @formatter:off if (LATEST_VERSION.equals(version)) { diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilter.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilter.java index 749873a23..0bb72e549 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilter.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaTypedEntityFilter.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2021 Nordix Foundation. + * Copyright (C) 2019-2021, 2024 Nordix Foundation. * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,7 +22,6 @@ package org.onap.policy.models.tosca.authorative.concepts; import java.util.List; -import java.util.stream.Collectors; import lombok.Builder; import lombok.Data; import lombok.NonNull; @@ -63,7 +62,7 @@ public class ToscaTypedEntityFilter<T extends ToscaEntity> implements PfObjectFi .filter(filterPrefixPred(versionPrefix, T::getVersion)) .filter(filterStringPred(type, T::getType)) .filter(filterStringPred(typeVersion, T::getTypeVersion)) - .collect(Collectors.toList()); + .toList(); // @formatter:off if (LATEST_VERSION.equals(version)) { diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java index 35971563f..f047658fb 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProvider.java @@ -55,7 +55,6 @@ import org.slf4j.LoggerFactory; public class AuthorativeToscaProvider { private static final Logger LOGGER = LoggerFactory.getLogger(AuthorativeToscaProvider.class); - // TODO: In next release this locking mechanism should be removed and replaced with proper session handling private static final Object providerLockObject = "providerLockObject"; /** diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyType.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyType.java index 14502c64c..593d18bbb 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyType.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaPolicyType.java @@ -3,7 +3,7 @@ * ONAP Policy Model * ================================================================================ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2019-2020, 2023 Nordix Foundation. + * Modifications Copyright (C) 2019-2020, 2023-2024 Nordix Foundation. * Modifications Copyright (C) 2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -110,19 +110,10 @@ public class JpaToscaPolicyType extends JpaToscaWithToscaProperties<ToscaPolicyT super.setToscaEntity(toscaPolicyType); super.toAuthorative(); - // TODO need to copy targets & triggers? - return toscaPolicyType; } @Override - public void fromAuthorative(final ToscaPolicyType toscaPolicyType) { - super.fromAuthorative(toscaPolicyType); - - // TODO need to copy targets & triggers? - } - - @Override public List<PfKey> getKeys() { final List<PfKey> keyList = super.getKeys(); diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilterTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilterTest.java index b9ae31bb5..c1c3f4aeb 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilterTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaEntityFilterTest.java @@ -146,16 +146,6 @@ class ToscaEntityFilterTest { typeList.get(12).setVersion("2.0.0"); filteredList = filter.filter(typeList); assertEquals(19, filteredList.size()); - // - // This seems to change around as to where this policy type - // got changed - perhaps we change this test to find a specific name - // to test for vs an index which never remains consistent? - // - // assertEquals("2.0.0", filteredList.get(18).getVersion()); - // - // And now this index changes again?? - // - // assertEquals(VERSION_100, filteredList.get(17).getVersion()); typeList.get(12).setVersion(VERSION_100); filteredList = filter.filter(typeList); diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java index 78058d99c..d12e741c1 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderGenericTest.java @@ -169,7 +169,7 @@ class AuthorativeToscaProviderGenericTest { } @Test - void testNullParameters() throws Exception { + void testNullParameters() { assertThatThrownBy(() -> new AuthorativeToscaProvider().getServiceTemplateList(null, null, null)) .hasMessageMatching("^dao is marked .*on.*ull but is null$"); diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java index b07535e59..a993b303b 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/provider/AuthorativeToscaProviderPolicyTypeTest.java @@ -423,7 +423,7 @@ class AuthorativeToscaProviderPolicyTypeTest { } @Test - void testNullParameters() throws Exception { + void testNullParameters() { assertThatThrownBy(() -> new AuthorativeToscaProvider().getPolicyTypeList(null, null, null)) .hasMessageMatching("^dao is marked .*on.*ull but is null$"); } diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityAssignmentsTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityAssignmentsTest.java new file mode 100644 index 000000000..7d546632b --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityAssignmentsTest.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2024 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.tosca.simple.concepts; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.MockitoAnnotations.openMocks; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.onap.policy.common.parameters.BeanValidationResult; +import org.onap.policy.models.base.PfConceptKey; + +class JpaToscaCapabilityAssignmentsTest { + + @Mock + private PfConceptKey mockKey; + + private JpaToscaCapabilityAssignments jpaToscaCapabilityAssignmentsUnderTest; + + @BeforeEach + void setUp() { + openMocks(this); + jpaToscaCapabilityAssignmentsUnderTest = new JpaToscaCapabilityAssignments(mockKey, Map.ofEntries( + Map.entry(new PfConceptKey("name", "1.0.0"), + new JpaToscaCapabilityAssignment(new PfConceptKey("name", "1.0.0"))))); + } + + @Test + void testConstructors() { + JpaToscaCapabilityAssignments assignment = new JpaToscaCapabilityAssignments(); + assertNotNull(assignment); + + PfConceptKey key = new PfConceptKey(); + assignment = new JpaToscaCapabilityAssignments(key); + assertNotNull(assignment); + + assignment = new JpaToscaCapabilityAssignments(key, new HashMap<>()); + assertNotNull(assignment); + + JpaToscaCapabilityAssignments assignmentCopy = new JpaToscaCapabilityAssignments(assignment); + assertNotNull(assignmentCopy); + + assertThatThrownBy(() -> new JpaToscaCapabilityAssignments(List.of(new HashMap<>()))) + .hasMessageContaining("An incoming list of concepts must have at least one entry"); + } + + @Test + void testValidate() { + BeanValidationResult result = jpaToscaCapabilityAssignmentsUnderTest.validate("fieldName"); + assertThat(result.getResult()).contains("item has status INVALID"); + + assertThatThrownBy(() -> jpaToscaCapabilityAssignmentsUnderTest.validate(null)) + .hasMessageContaining("fieldName is marked non-null but is null"); + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityTypeTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityTypeTest.java new file mode 100644 index 000000000..4f2b40102 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaCapabilityTypeTest.java @@ -0,0 +1,74 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2024 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.tosca.simple.concepts; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.when; +import static org.mockito.MockitoAnnotations.openMocks; + +import java.util.Map; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.tosca.authorative.concepts.ToscaCapabilityType; +import org.onap.policy.models.tosca.authorative.concepts.ToscaProperty; + +class JpaToscaCapabilityTypeTest { + + @Mock + private PfConceptKey mockKey; + + private JpaToscaCapabilityType jpaToscaCapabilityTypeUnderTest; + + private AutoCloseable mockitoCloseable; + + @BeforeEach + void setUp() { + mockitoCloseable = openMocks(this); + jpaToscaCapabilityTypeUnderTest = new JpaToscaCapabilityType(mockKey); + } + + @AfterEach + void tearDown() throws Exception { + mockitoCloseable.close(); + } + + @Test + void testToAuthorative() { + final ToscaCapabilityType expectedResult = new ToscaCapabilityType(); + expectedResult.setName("name"); + expectedResult.setVersion("version"); + expectedResult.setDerivedFrom("name"); + expectedResult.setMetadata(Map.ofEntries(Map.entry("value", "value"))); + expectedResult.setDescription("description"); + final ToscaProperty toscaProperty = new ToscaProperty(); + expectedResult.setProperties(Map.ofEntries(Map.entry("value", toscaProperty))); + + when(mockKey.getName()).thenReturn("name"); + when(mockKey.getVersion()).thenReturn("version"); + + final ToscaCapabilityType result = jpaToscaCapabilityTypeUnderTest.toAuthorative(); + + assertThat(result.toString()).contains(expectedResult.toString()); + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaRequirementTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaRequirementTest.java new file mode 100644 index 000000000..228a4f822 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/concepts/JpaToscaRequirementTest.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2024 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.tosca.simple.concepts; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.MockitoAnnotations.openMocks; + +import java.util.List; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.onap.policy.models.base.PfConceptKey; + +class JpaToscaRequirementTest { + + @Mock + private PfConceptKey mockKey; + @Mock + private List<Integer> mockOccurrences; + + private JpaToscaRequirement jpaToscaRequirementUnderTest; + + private AutoCloseable mockitoCloseable; + + @BeforeEach + void setUp() { + mockitoCloseable = openMocks(this); + jpaToscaRequirementUnderTest = new JpaToscaRequirement(mockKey); + jpaToscaRequirementUnderTest.setOccurrences(mockOccurrences); + } + + @AfterEach + void tearDown() throws Exception { + mockitoCloseable.close(); + } + + @Test + void testCapabilityGetterAndSetter() { + final String capability = "capability"; + jpaToscaRequirementUnderTest.setCapability(capability); + assertThat(jpaToscaRequirementUnderTest.getCapability()).isEqualTo(capability); + + final String node = "node"; + jpaToscaRequirementUnderTest.setNode(node); + assertThat(jpaToscaRequirementUnderTest.getNode()).isEqualTo(node); + + final String relationship = "relationship"; + jpaToscaRequirementUnderTest.setRelationship(relationship); + assertThat(jpaToscaRequirementUnderTest.getRelationship()).isEqualTo(relationship); + + assertThat(jpaToscaRequirementUnderTest.getOccurrences()).isEqualTo(mockOccurrences); + + assertThat(jpaToscaRequirementUnderTest.toString()) + .hasToString("JpaToscaRequirement(capability=capability, node=node, relationship=relationship, " + + "occurrences=mockOccurrences)"); + } +} 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 a789cd57b..b26b3976f 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 @@ -531,13 +531,13 @@ class SimpleToscaProviderTest { } @Test - void testGetServiceTemplate() throws PfModelException { + void testGetServiceTemplate() { assertThatThrownBy(() -> new SimpleToscaProvider().getServiceTemplate(pfDao)) .hasMessage("service template not found in database"); } @Test - void testAppendToServiceTemplate() throws PfModelException { + void testAppendToServiceTemplate() { JpaToscaServiceTemplate serviceTemplateFragment = new JpaToscaServiceTemplate(); serviceTemplateFragment.setPolicyTypes(new JpaToscaPolicyTypes()); JpaToscaPolicyType badPt = new JpaToscaPolicyType(); diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/OptimizationPolicyTypeSerializationTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/OptimizationPolicyTypeSerializationTest.java index 4ddae1c5c..7ee015d59 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/OptimizationPolicyTypeSerializationTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/simple/serialization/OptimizationPolicyTypeSerializationTest.java @@ -173,9 +173,6 @@ class OptimizationPolicyTypeSerializationTest { assertNotNull(prop, testnm); - // this line results in a stack overflow - // assertEquals(testnm + " name", "geography", prop.getName()); - assertEquals("One or more geographic regions", prop.getDescription(), testnm + " description"); assertEquals("list", prop.getType().getName(), testnm + " description"); validateMatchable(testnm, prop.getMetadata()); |