From b72448e8d134c9c591dc70a0f566e6487212282b Mon Sep 17 00:00:00 2001 From: lapentafd Date: Tue, 8 Jun 2021 13:20:41 +0100 Subject: Fix Sonar Issues in apex-pdp-basic-model Test refactoring and use of Local-Variable Type Inference Issue-ID: POLICY-3093 Change-Id: If19c9ec96ba440a58eff679f276e4b53a26ce1ab Signed-off-by: lapentafd --- .../model/basicmodel/concepts/AxArtifactKey.java | 16 ++-- .../basicmodel/concepts/AxConceptGetterImpl.java | 6 +- .../apex/model/basicmodel/concepts/AxKeyInfo.java | 12 +-- .../basicmodel/concepts/AxKeyInformation.java | 10 +-- .../apex/model/basicmodel/concepts/AxKeyUse.java | 8 +- .../apex/model/basicmodel/concepts/AxModel.java | 8 +- .../model/basicmodel/concepts/AxReferenceKey.java | 18 ++-- .../basicmodel/xml/AxReferenceKeyAdapter.java | 3 +- .../model/basicmodel/concepts/AxKeyInfoTest.java | 13 ++- .../apex/model/basicmodel/concepts/AxKeyTest.java | 95 ++++++++++++++-------- 10 files changed, 115 insertions(+), 74 deletions(-) diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxArtifactKey.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxArtifactKey.java index 86c89c35e..1edbc9be9 100644 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxArtifactKey.java +++ b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxArtifactKey.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -235,7 +235,7 @@ public class AxArtifactKey extends AxKey { } final AxArtifactKey otherArtifactKey = (AxArtifactKey) otherKey; - final Compatibility compatibility = this.getCompatibility(otherArtifactKey); + final var compatibility = this.getCompatibility(otherArtifactKey); return !(compatibility == Compatibility.DIFFERENT || compatibility == Compatibility.MAJOR); } @@ -245,14 +245,14 @@ public class AxArtifactKey extends AxKey { */ @Override public AxValidationResult validate(final AxValidationResult result) { - final String nameValidationErrorMessage = Assertions.getStringParameterValidationMessage(NAME_TOKEN, name, + final var nameValidationErrorMessage = Assertions.getStringParameterValidationMessage(NAME_TOKEN, name, NAME_REGEXP); if (nameValidationErrorMessage != null) { result.addValidationMessage(new AxValidationMessage(this, this.getClass(), ValidationResult.INVALID, "name invalid-" + nameValidationErrorMessage)); } - final String versionValidationErrorMessage = Assertions.getStringParameterValidationMessage(VERSION_TOKEN, + final var versionValidationErrorMessage = Assertions.getStringParameterValidationMessage(VERSION_TOKEN, version, VERSION_REGEXP); if (versionValidationErrorMessage != null) { result.addValidationMessage(new AxValidationMessage(this, this.getClass(), ValidationResult.INVALID, @@ -276,7 +276,7 @@ public class AxArtifactKey extends AxKey { */ @Override public String toString() { - final StringBuilder builder = new StringBuilder(); + final var builder = new StringBuilder(); builder.append(this.getClass().getSimpleName()); builder.append(":("); builder.append("name="); @@ -309,8 +309,8 @@ public class AxArtifactKey extends AxKey { */ @Override public int hashCode() { - final int prime = 31; - int result = 1; + final var prime = 31; + var result = 1; result = prime * result + name.hashCode(); result = prime * result + version.hashCode(); return result; @@ -360,4 +360,4 @@ public class AxArtifactKey extends AxKey { } return version.compareTo(other.version); } -} \ No newline at end of file +} diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxConceptGetterImpl.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxConceptGetterImpl.java index 175cded08..9c907da9c 100644 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxConceptGetterImpl.java +++ b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxConceptGetterImpl.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ public class AxConceptGetterImpl implements AxConceptGetter { Assertions.argumentNotNull(conceptKeyName, "conceptKeyName may not be null"); // The very fist key that could have this name - final AxArtifactKey lowestArtifactKey = new AxArtifactKey(conceptKeyName, "0.0.1"); + final var lowestArtifactKey = new AxArtifactKey(conceptKeyName, "0.0.1"); // Check if we found a key for our name AxArtifactKey foundKey = conceptMap.ceilingKey(lowestArtifactKey); @@ -117,7 +117,7 @@ public class AxConceptGetterImpl implements AxConceptGetter { } // The very fist key that could have this name - final AxArtifactKey lowestArtifactKey = new AxArtifactKey(conceptKeyName, "0.0.1"); + final var lowestArtifactKey = new AxArtifactKey(conceptKeyName, "0.0.1"); if (conceptKeyVersion != null) { lowestArtifactKey.setVersion(conceptKeyVersion); } diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfo.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfo.java index 4b84a403a..7e92faddf 100644 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfo.java +++ b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfo.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -233,7 +233,7 @@ public class AxKeyInfo extends AxConcept { */ @Override public String toString() { - final StringBuilder builder = new StringBuilder(); + final var builder = new StringBuilder(); builder.append(this.getClass().getSimpleName()); builder.append(":("); builder.append("artifactId="); @@ -269,8 +269,8 @@ public class AxKeyInfo extends AxConcept { */ @Override public int hashCode() { - final int prime = 31; - int result = 1; + final var prime = 31; + var result = 1; result = prime * result + key.hashCode(); result = prime * result + uuid.hashCode(); result = prime * result + description.hashCode(); @@ -336,14 +336,14 @@ public class AxKeyInfo extends AxConcept { * @return the uuid */ public static UUID generateReproducibleUuid(final String seed) { - Random random = sharedRandom; + var random = sharedRandom; if (!StringUtils.isEmpty(seed)) { /* * This is not used for encryption/security, thus disabling sonar. */ random = new Random(seed.hashCode()); // NOSONAR } - final byte[] array = new byte[UUID_BYTE_LENGTH_16]; + final var array = new byte[UUID_BYTE_LENGTH_16]; random.nextBytes(array); return UUID.nameUUIDFromBytes(array); } diff --git a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInformation.java b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInformation.java index 2619d2eea..fe597bb08 100644 --- a/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInformation.java +++ b/model/basic-model/src/main/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInformation.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -151,7 +151,7 @@ public class AxKeyInformation extends AxConcept implements AxConceptGetter { - final AxKeyInfo keyInfo = new AxKeyInfo(artifactKey); + final var keyInfo = new AxKeyInfo(artifactKey); // generate a reproducible UUID keyInfo.setUuid(AxKeyInfo.generateReproducibleUuid(keyInfo.getId() + keyInfo.getDescription())); return keyInfo; @@ -290,7 +290,7 @@ public class AxKeyInformation extends AxConcept implements AxConceptGetter im */ @Override public final AxReferenceKey unmarshal(final String key) throws Exception { - final AxReferenceKey axReferenceKey = new AxReferenceKey(); + final var axReferenceKey = new AxReferenceKey(); axReferenceKey.setLocalName(key); return axReferenceKey; } diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfoTest.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfoTest.java index 5a57ba3a6..b5fcea3ca 100644 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfoTest.java +++ b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyInfoTest.java @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019 Nordix-2020 Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,11 +33,14 @@ import org.junit.Test; public class AxKeyInfoTest { @Test - public void testAxKeyInfo() { + public void testNullAxKeyInfo() { assertNotNull(new AxKeyInfo()); assertNotNull(new AxKeyInfo(new AxArtifactKey())); assertNotNull(new AxKeyInfo(new AxArtifactKey(), UUID.randomUUID(), "Key description")); + } + @Test + public void testAxKeyInfo() { AxKeyInfo testKeyInfo = new AxKeyInfo(); testKeyInfo.setKey((new AxArtifactKey("PN", "0.0.1"))); assertEquals("PN:0.0.1", testKeyInfo.getKey().getId()); @@ -78,6 +81,12 @@ public class AxKeyInfoTest { assertEquals(0, testKeyInfo.compareTo(new AxKeyInfo(key, uuid, "Key Description"))); assertNotNull(testKeyInfo.getKeys()); + } + + @Test + public void testAxKeyValidation() { + AxKeyInfo testKeyInfo = new AxKeyInfo(); + testKeyInfo.setKey((new AxArtifactKey("PN", "0.0.1"))); AxValidationResult result = new AxValidationResult(); result = testKeyInfo.validate(result); diff --git a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyTest.java b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyTest.java index 1e8e7f5af..010f4b8a3 100644 --- a/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyTest.java +++ b/model/basic-model/src/test/java/org/onap/policy/apex/model/basicmodel/concepts/AxKeyTest.java @@ -1,7 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. All rights reserved. - * Modifications Copyright (C) 2019-2020 Nordix Foundation. + * Modifications Copyright (C) 2019-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,41 +29,81 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.lang.reflect.Field; +import org.junit.Before; import org.junit.Test; import org.onap.policy.apex.model.basicmodel.concepts.AxKey.Compatibility; public class AxKeyTest { + private static AxArtifactKey someKey0; + private static AxArtifactKey someKey1; + private static AxArtifactKey someKey2; + private static AxArtifactKey someKey3; + private static AxArtifactKey someKey4; + private static AxArtifactKey someKey5; + private static AxArtifactKey someKey6; + + /** + * Sets data in Keys for the tests. + */ + @Before + public void setKeys() { + someKey0 = new AxArtifactKey(); + someKey1 = new AxArtifactKey("name", "0.0.1"); + someKey2 = new AxArtifactKey(someKey1); + someKey3 = new AxArtifactKey(someKey1.getId()); + someKey4 = new AxArtifactKey(someKey1); + someKey5 = new AxArtifactKey(someKey1); + someKey6 = new AxArtifactKey(someKey1); + } + + private void setKeyValues() { + someKey0.setName("zero"); + someKey0.setVersion("0.0.2"); + someKey3.setVersion("0.0.2"); + someKey4.setVersion("0.1.2"); + someKey5.setVersion("1.2.2"); + someKey6.setVersion("3"); + } + @Test public void testArtifactKey() { assertThatThrownBy(() -> new AxArtifactKey("some bad key id")) .hasMessage("parameter \"id\": value \"some bad key id\", " + "does not match regular expression \"[A-Za-z0-9\\-_\\.]+:[0-9].[0-9].[0-9]\""); - AxArtifactKey someKey0 = new AxArtifactKey(); + assertEquals(AxArtifactKey.getNullKey(), someKey0); - AxArtifactKey someKey1 = new AxArtifactKey("name", "0.0.1"); - AxArtifactKey someKey2 = new AxArtifactKey(someKey1); - AxArtifactKey someKey3 = new AxArtifactKey(someKey1.getId()); assertEquals(someKey1, someKey2); assertEquals(someKey1, someKey3); assertEquals(someKey2, someKey1.getKey()); assertEquals(1, someKey1.getKeys().size()); - someKey0.setName("zero"); - someKey0.setVersion("0.0.2"); + setKeyValues(); - someKey3.setVersion("0.0.2"); + someKey0.clean(); + assertNotNull(someKey0.toString()); - AxArtifactKey someKey4 = new AxArtifactKey(someKey1); - someKey4.setVersion("0.1.2"); + AxArtifactKey someKey7 = new AxArtifactKey(someKey1); + assertEquals(150332875, someKey7.hashCode()); + assertEquals(0, someKey7.compareTo(someKey1)); + assertEquals(-12, someKey7.compareTo(someKey0)); - AxArtifactKey someKey5 = new AxArtifactKey(someKey1); - someKey5.setVersion("1.2.2"); + assertThatThrownBy(() -> someKey0.compareTo(null)) + .hasMessage("comparison object may not be null"); + assertEquals(0, someKey0.compareTo(someKey0)); + assertEquals(353602977, someKey0.compareTo(new AxReferenceKey())); - AxArtifactKey someKey6 = new AxArtifactKey(someKey1); - someKey6.setVersion("3"); + assertNotNull(someKey0); + // disabling sonar because this code tests the equals() method + assertEquals(someKey0, someKey0); // NOSONAR + assertNotEquals(someKey0, (Object) new AxReferenceKey()); + } + + @Test + public void testAxCompatibility() { + setKeyValues(); assertEquals(Compatibility.DIFFERENT, someKey0.getCompatibility(new AxReferenceKey())); assertEquals(Compatibility.DIFFERENT, someKey0.getCompatibility(someKey1)); @@ -79,6 +119,11 @@ public class AxKeyTest { assertFalse(someKey1.isCompatible(someKey0)); assertFalse(someKey1.isCompatible(someKey5)); assertFalse(someKey1.isCompatible(new AxReferenceKey())); + } + + @Test + public void testAxValidation() { + setKeyValues(); assertEquals(AxValidationResult.ValidationResult.VALID, someKey0.validate(new AxValidationResult()).getValidationResult()); @@ -94,24 +139,11 @@ public class AxKeyTest { someKey5.validate(new AxValidationResult()).getValidationResult()); assertEquals(AxValidationResult.ValidationResult.VALID, someKey6.validate(new AxValidationResult()).getValidationResult()); + } - someKey0.clean(); - assertNotNull(someKey0.toString()); - - AxArtifactKey someKey7 = new AxArtifactKey(someKey1); - assertEquals(150332875, someKey7.hashCode()); - assertEquals(0, someKey7.compareTo(someKey1)); - assertEquals(-12, someKey7.compareTo(someKey0)); - - assertThatThrownBy(() -> someKey0.compareTo(null)) - .hasMessage("comparison object may not be null"); - assertEquals(0, someKey0.compareTo(someKey0)); - assertEquals(353602977, someKey0.compareTo(new AxReferenceKey())); - - assertNotNull(someKey0); - // disabling sonar because this code tests the equals() method - assertEquals(someKey0, someKey0); // NOSONAR - assertNotEquals(someKey0, (Object) new AxReferenceKey()); + @Test + public void testNullKey() { + setKeyValues(); AxArtifactKey nullKey0 = AxArtifactKey.getNullKey(); assertTrue(nullKey0.isNullKey()); @@ -121,7 +153,6 @@ public class AxKeyTest { assertTrue(nullKey2.isNullKey()); AxArtifactKey notnullKey = new AxArtifactKey("Blah", AxKey.NULL_KEY_VERSION); assertFalse(notnullKey.isNullKey()); - } -- cgit 1.2.3-korg