diff options
author | Ram Krishna Verma <ram_krishna.verma@bell.ca> | 2021-02-18 16:34:29 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2021-02-18 16:34:29 +0000 |
commit | 7e4f9950ed004042e36e7e1f6f78224d62888e74 (patch) | |
tree | 4f02e0ac17344efb9812d4cde82956a4426eec6d | |
parent | fefe7e58cdfeab741483bda15ea15ebef5cdd8da (diff) | |
parent | 1f7ddcb95f4de6fc7a05d7a74d95a5f6bd41f9c5 (diff) |
Merge "Remove more duplicate code from models"
-rw-r--r-- | models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java | 61 | ||||
-rw-r--r-- | models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java | 48 | ||||
-rw-r--r-- | models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java | 87 | ||||
-rw-r--r-- | models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierTest.java (renamed from models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyConceptIdentifierTest.java) | 6 | ||||
-rw-r--r-- | models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersionTest.java | 100 | ||||
-rw-r--r-- | models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeConceptIdentifierTest.java | 94 |
6 files changed, 214 insertions, 182 deletions
diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java index 4cc8892c2..9033c8fa0 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifier.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Models * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,43 +22,33 @@ package org.onap.policy.models.tosca.authorative.concepts; import java.io.Serializable; -import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.apache.commons.lang3.ObjectUtils; import org.onap.policy.common.parameters.BeanValidationResult; import org.onap.policy.common.parameters.ValidationResult; -import org.onap.policy.models.base.PfConceptKey; import org.onap.policy.models.base.PfKey; /** * Identifies a concept. Both the name and version must be non-null. */ -@Data +@EqualsAndHashCode(callSuper = true) @NoArgsConstructor -public class ToscaConceptIdentifier implements Serializable, Comparable<ToscaConceptIdentifier> { +public class ToscaConceptIdentifier extends ToscaNameVersion + implements Serializable, Comparable<ToscaConceptIdentifier> { private static final long serialVersionUID = 8010649773816325786L; - @NonNull - private String name; - - @NonNull - private String version; - public ToscaConceptIdentifier(@NonNull String name, @NonNull String version) { - this.name = name; - this.version = version; + super(name, version); } public ToscaConceptIdentifier(@NonNull PfKey key) { - this.name = key.getName(); - this.version = key.getVersion(); + super(key); } public ToscaConceptIdentifier(ToscaConceptIdentifier source) { - this.name = source.name; - this.version = source.version; + super(source); } /** @@ -67,43 +57,16 @@ public class ToscaConceptIdentifier implements Serializable, Comparable<ToscaCon * @return the validation result */ public ValidationResult validatePapRest() { - BeanValidationResult result = new BeanValidationResult("group", this); + BeanValidationResult result = new BeanValidationResult("identifier", this); - result.validateNotNull("name", name); - result.validateNotNull("version", version); + result.validateNotNull("name", getName()); + result.validateNotNull("version", getVersion()); return result; } - /** - * Create a PfConcceptKey from the TOSCA identifier. - * - * @return the key - */ - public PfConceptKey asConceptKey() { - return new PfConceptKey(name, version); - } - @Override public int compareTo(ToscaConceptIdentifier other) { - if (this == other) { - return 0; - } - - if (other == null) { - return 1; - } - - int result = ObjectUtils.compare(getName(), other.getName()); - if (result != 0) { - return result; - } - - return ObjectUtils.compare(getVersion(), other.getVersion()); - } - - @Override - public String toString() { - return this.name + " " + this.version; + return commonCompareTo(other); } } diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java index c23c04fe8..62c1ed7ef 100644 --- a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierOptVersion.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Models * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,58 +21,34 @@ package org.onap.policy.models.tosca.authorative.concepts; -import lombok.Data; +import java.io.Serializable; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.NonNull; -import org.apache.commons.lang3.ObjectUtils; /** - * Concept identifier with an optional version; only the "name" is required. + * Concept identifier with an optional name and version. */ -@Data +@EqualsAndHashCode(callSuper = true) @NoArgsConstructor -public class ToscaConceptIdentifierOptVersion implements Comparable<ToscaConceptIdentifierOptVersion> { - - @NonNull - private String name; - - private String version; +public class ToscaConceptIdentifierOptVersion extends ToscaNameVersion + implements Serializable, Comparable<ToscaConceptIdentifierOptVersion> { + private static final long serialVersionUID = 8010649773816325786L; public ToscaConceptIdentifierOptVersion(@NonNull String name, String version) { - this.name = name; - this.version = version; + super(name, version); } public ToscaConceptIdentifierOptVersion(ToscaConceptIdentifierOptVersion source) { - this.name = source.name; - this.version = source.version; + super(source); } public ToscaConceptIdentifierOptVersion(ToscaConceptIdentifier source) { - this.name = source.getName(); - this.version = source.getVersion(); + super(source.getName(), source.getVersion()); } @Override public int compareTo(ToscaConceptIdentifierOptVersion other) { - if (this == other) { - return 0; - } - - if (other == null) { - return 1; - } - - int result = ObjectUtils.compare(getName(), other.getName()); - if (result != 0) { - return result; - } - - return ObjectUtils.compare(getVersion(), other.getVersion()); - } - - @Override - public String toString() { - return this.name + " " + this.version; + return commonCompareTo(other); } } diff --git a/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java new file mode 100644 index 000000000..6c83269f1 --- /dev/null +++ b/models-tosca/src/main/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersion.java @@ -0,0 +1,87 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2021 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. + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.tosca.authorative.concepts; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; +import org.apache.commons.lang3.ObjectUtils; +import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.PfKey; + +/** + * Concept with an optional name and version. + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ToscaNameVersion { + + private String name; + + private String version; + + public ToscaNameVersion(@NonNull PfKey key) { + this.name = key.getName(); + this.version = key.getVersion(); + } + + public ToscaNameVersion(ToscaNameVersion source) { + this.name = source.name; + this.version = source.version; + } + + /** + * Create a PfConcceptKey from the TOSCA identifier. + * + * @return the key + */ + public PfConceptKey asConceptKey() { + return new PfConceptKey(name, version); + } + + protected int commonCompareTo(ToscaNameVersion other) { + if (this == other) { + return 0; + } + + if (other == null) { + return 1; + } + + if (getClass() != other.getClass()) { + return getClass().getSimpleName().compareTo(other.getClass().getSimpleName()); + } + + int result = ObjectUtils.compare(getName(), other.getName()); + if (result != 0) { + return result; + } + + return ObjectUtils.compare(getVersion(), other.getVersion()); + } + + @Override + public String toString() { + return this.name + " " + this.version; + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyConceptIdentifierTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierTest.java index 993c21e35..88a49dbe3 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyConceptIdentifierTest.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaConceptIdentifierTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Models * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -35,9 +35,9 @@ import org.onap.policy.models.base.PfConceptKey; /** * Test methods not tested by {@link PojosTest}. */ -public class ToscaPolicyConceptIdentifierTest extends ToscaIdentifierTestBase<ToscaConceptIdentifier> { +public class ToscaConceptIdentifierTest extends ToscaIdentifierTestBase<ToscaConceptIdentifier> { - public ToscaPolicyConceptIdentifierTest() { + public ToscaConceptIdentifierTest() { super(ToscaConceptIdentifier.class, "name", "version"); } diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersionTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersionTest.java new file mode 100644 index 000000000..2a3586e07 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaNameVersionTest.java @@ -0,0 +1,100 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP + * ================================================================================ + * Copyright (C) 2021 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. + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.tosca.authorative.concepts; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import org.junit.Before; +import org.junit.Test; +import org.onap.policy.models.base.PfConceptKey; +import org.onap.policy.models.base.PfKey; + +public class ToscaNameVersionTest { + + private static final String MY_NAME = "MyName"; + private static final String MY_VERSION = "1.2.3"; + + private ToscaNameVersion tosca; + + @Before + public void setUp() { + tosca = new ToscaNameVersion(MY_NAME, MY_VERSION); + } + + @Test + public void testToscaNameVersionPfKey() { + tosca = new ToscaNameVersion(new PfConceptKey(MY_NAME, MY_VERSION)); + assertEquals(MY_NAME, tosca.getName()); + assertEquals(MY_VERSION, tosca.getVersion()); + + assertThatThrownBy(() -> new ToscaNameVersion((PfKey) null)).isInstanceOf(NullPointerException.class) + .hasMessageContaining("key").hasMessageContaining("is null"); + } + + @Test + public void testToscaNameVersionToscaNameVersion() { + tosca = new ToscaNameVersion(tosca); + assertEquals(MY_NAME, tosca.getName()); + assertEquals(MY_VERSION, tosca.getVersion()); + } + + @Test + public void testAsConceptKey() { + assertEquals(new PfConceptKey(MY_NAME, MY_VERSION), tosca.asConceptKey()); + } + + @Test + public void testCommonCompareTo() { + assertThat(tosca.commonCompareTo(tosca)).isZero(); + assertThat(tosca.commonCompareTo(null)).isNotZero(); + assertThat(tosca.commonCompareTo(new MyNameVersion(MY_NAME, MY_VERSION))).isNotZero(); + assertThat(tosca.commonCompareTo(new ToscaNameVersion(tosca))).isZero(); + assertThat(tosca.commonCompareTo(new ToscaNameVersion(MY_NAME, null))).isNotZero(); + assertThat(tosca.commonCompareTo(new ToscaNameVersion(null, MY_VERSION))).isNotZero(); + } + + @Test + public void testToString() { + assertEquals(MY_NAME + " " + MY_VERSION, tosca.toString()); + } + + @Test + public void testToscaNameVersion() { + tosca = new ToscaNameVersion(); + assertNull(tosca.getName()); + assertNull(tosca.getVersion()); + } + + @Test + public void testToscaNameVersionStringString() { + assertEquals(MY_NAME, tosca.getName()); + assertEquals(MY_VERSION, tosca.getVersion()); + } + + private static class MyNameVersion extends ToscaNameVersion { + public MyNameVersion(String name, String version) { + super(name, version); + } + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeConceptIdentifierTest.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeConceptIdentifierTest.java deleted file mode 100644 index d37f29360..000000000 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaPolicyTypeConceptIdentifierTest.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 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. - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.tosca.authorative.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.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.common.parameters.ValidationResult; - -/** - * Test methods not tested by {@link PojosTest}. - */ -public class ToscaPolicyTypeConceptIdentifierTest extends ToscaIdentifierTestBase<ToscaConceptIdentifier> { - - public ToscaPolicyTypeConceptIdentifierTest() { - super(ToscaConceptIdentifier.class, "name", "version"); - } - - @Test - public void testAllArgsConstructor() { - assertThatThrownBy(() -> new ToscaConceptIdentifier(null, VERSION)).isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> new ToscaConceptIdentifier(NAME, null)).isInstanceOf(NullPointerException.class); - - ToscaConceptIdentifier orig = new ToscaConceptIdentifier(NAME, VERSION); - assertEquals(NAME, orig.getName()); - assertEquals(VERSION, orig.getVersion()); - } - - @Test - public void testCopyConstructor() { - assertThatThrownBy(() -> new ToscaConceptIdentifier((ToscaConceptIdentifier) null)) - .isInstanceOf(NullPointerException.class); - - ToscaConceptIdentifier orig = new ToscaConceptIdentifier(); - - // verify with null values - assertEquals(orig.toString(), new ToscaConceptIdentifier(orig).toString()); - - // verify with all values - orig = new ToscaConceptIdentifier(NAME, VERSION); - assertEquals(orig.toString(), new ToscaConceptIdentifier(orig).toString()); - } - - @Test - public void testValidatePapRest() throws Exception { - ToscaConceptIdentifier ident = new ToscaConceptIdentifier(NAME, VERSION); - ValidationResult result = ident.validatePapRest(); - assertNotNull(result); - assertTrue(result.isValid()); - assertNull(result.getResult()); - - ident = makeIdent(NAME, null); - result = ident.validatePapRest(); - assertNotNull(result); - assertFalse(result.isValid()); - assertNotNull(result.getResult()); - - ident = makeIdent(null, VERSION); - result = ident.validatePapRest(); - assertNotNull(result); - assertFalse(result.isValid()); - assertNotNull(result.getResult()); - } - - @Test - @Override - public void testCompareTo() throws Exception { - super.testCompareTo(); - } -} |