From b0bb6076e2298c7a016a00adcaefb7ed75eac641 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Thu, 4 Apr 2019 11:20:42 -0400 Subject: Updates to models from scrum on 4/4 Moved ToscaPolicyIdentXxx classes from models-pdp to models-tosca, and added methods to retrieve them from a ToscaPolicy. Removed version and instance fields from PdpStatus. Chose to leave "description" field in the PAP/PDP messages. The PDPs can ignore them or leave them null. In a PdpUpdate message, the description will be the description associated with the PdpGroup. In a PdpStatus message, the PDP could choose to provide a description of the PDP, itself (or the type of PDP). Added comments to that effect. Moved name, group, and subgroup fields into PdpMessage. Fixed typos in comments. Updated licenses. Change "long" to "Long" in PdpUpdate. Use lombok @ToString instead of override. Fixed merge conflict. Change-Id: Icd928f9a7630b838ad4b0b5556e899dc21b7872b Issue-ID: POLICY-1542 Signed-off-by: Jim Hahn --- .../tosca/authorative/concepts/TestPojos.java | 4 +- .../authorative/concepts/TestToscaPolicy.java | 49 +++++++++++++ .../concepts/TestToscaPolicyIdentifier.java | 62 +++++++++++++++++ .../TestToscaPolicyIdentifierOptVersion.java | 71 +++++++++++++++++++ .../concepts/TestToscaPolicyTypeIdentifier.java | 63 +++++++++++++++++ .../concepts/ToscaIdentifierTestBase.java | 81 ++++++++++++++++++++++ 6 files changed, 329 insertions(+), 1 deletion(-) create mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicy.java create mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifier.java create mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifierOptVersion.java create mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyTypeIdentifier.java create mode 100644 models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaIdentifierTestBase.java (limited to 'models-tosca/src/test/java/org') diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestPojos.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestPojos.java index 96d82e7b3..15240665d 100644 --- a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestPojos.java +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestPojos.java @@ -59,7 +59,9 @@ public class TestPojos { new FilterClassName( org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyFilter.class.getName()), new FilterClassName( - org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter.class.getName()) + org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeFilter.class.getName()), + new FilterClassName( + ToscaIdentifierTestBase.class.getName()) ); // @formatter:on } diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicy.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicy.java new file mode 100644 index 000000000..881a69d07 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicy.java @@ -0,0 +1,49 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Tests methods not tested by {@link TestPojos}. + */ +public class TestToscaPolicy { + + @Test + public void testGetIdentifier_testGetTypeIdentifier() { + ToscaPolicy policy = new ToscaPolicy(); + + policy.setName("my_name"); + policy.setVersion("1.2.3"); + policy.setType("my_type"); + policy.setTypeVersion("3.2.1"); + + ToscaPolicyIdentifier ident = policy.getIdentifier(); + assertEquals("my_name", ident.getName()); + assertEquals("1.2.3", ident.getVersion()); + + ToscaPolicyTypeIdentifier type = policy.getTypeIdentifier(); + assertEquals("my_type", type.getName()); + assertEquals("3.2.1", type.getVersion()); + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifier.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifier.java new file mode 100644 index 000000000..0dc9eb13c --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifier.java @@ -0,0 +1,62 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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.assertThatThrownBy; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Test the other constructors, as {@link TestPojos} tests the other methods. + */ +public class TestToscaPolicyIdentifier extends ToscaIdentifierTestBase { + private static final String NAME = "my-name"; + private static final String VERSION = "1.2.3"; + + public TestToscaPolicyIdentifier() { + super(ToscaPolicyIdentifier.class); + } + + @Test + public void testAllArgsConstructor() { + assertThatThrownBy(() -> new ToscaPolicyIdentifier(null, VERSION)).isInstanceOf(NullPointerException.class); + assertThatThrownBy(() -> new ToscaPolicyIdentifier(NAME, null)).isInstanceOf(NullPointerException.class); + + ToscaPolicyIdentifier orig = new ToscaPolicyIdentifier(NAME, VERSION); + assertEquals(NAME, orig.getName()); + assertEquals(VERSION, orig.getVersion()); + } + + @Test + public void testCopyConstructor() { + assertThatThrownBy(() -> new ToscaPolicyIdentifier(null)).isInstanceOf(NullPointerException.class); + + ToscaPolicyIdentifier orig = new ToscaPolicyIdentifier(); + + // verify with null values + assertEquals(orig.toString(), new ToscaPolicyIdentifier(orig).toString()); + + // verify with all values + orig = new ToscaPolicyIdentifier(NAME, VERSION); + assertEquals(orig.toString(), new ToscaPolicyIdentifier(orig).toString()); + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifierOptVersion.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifierOptVersion.java new file mode 100644 index 000000000..999dca565 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyIdentifierOptVersion.java @@ -0,0 +1,71 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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.assertThatThrownBy; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Test the other constructors, as {@link TestPojos} tests the other methods. + */ +public class TestToscaPolicyIdentifierOptVersion extends ToscaIdentifierTestBase { + private static final String NAME = "my-name"; + private static final String VERSION = "1.2.3"; + + public TestToscaPolicyIdentifierOptVersion() { + super(ToscaPolicyIdentifierOptVersion.class); + } + + @Test + public void testAllArgsConstructor_testIsNullVersion() { + assertThatThrownBy(() -> new ToscaPolicyIdentifierOptVersion(null, VERSION)) + .isInstanceOf(NullPointerException.class); + + // with null version + ToscaPolicyIdentifierOptVersion orig = new ToscaPolicyIdentifierOptVersion(NAME, null); + assertEquals(NAME, orig.getName()); + assertEquals(null, orig.getVersion()); + assertTrue(orig.isNullVersion()); + + orig = new ToscaPolicyIdentifierOptVersion(NAME, VERSION); + assertEquals(NAME, orig.getName()); + assertEquals(VERSION, orig.getVersion()); + assertFalse(orig.isNullVersion()); + } + + @Test + public void testCopyConstructor() throws Exception { + assertThatThrownBy(() -> new ToscaPolicyIdentifierOptVersion(null)).isInstanceOf(NullPointerException.class); + + ToscaPolicyIdentifierOptVersion orig = new ToscaPolicyIdentifierOptVersion(); + + // verify with null values + assertEquals(orig.toString(), new ToscaPolicyIdentifierOptVersion(orig).toString()); + + // verify with all values + orig = makeIdent(NAME, VERSION); + assertEquals(orig.toString(), new ToscaPolicyIdentifierOptVersion(orig).toString()); + } +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyTypeIdentifier.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyTypeIdentifier.java new file mode 100644 index 000000000..778d60c09 --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/TestToscaPolicyTypeIdentifier.java @@ -0,0 +1,63 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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.assertThatThrownBy; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Test the other constructors, as {@link TestPojos} tests the other methods. + */ +public class TestToscaPolicyTypeIdentifier extends ToscaIdentifierTestBase { + private static final String NAME = "my-name"; + private static final String VERSION = "1.2.3"; + + public TestToscaPolicyTypeIdentifier() { + super(ToscaPolicyTypeIdentifier.class); + } + + @Test + public void testAllArgsConstructor() { + assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(null, VERSION)).isInstanceOf(NullPointerException.class); + assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(NAME, null)).isInstanceOf(NullPointerException.class); + + ToscaPolicyTypeIdentifier orig = new ToscaPolicyTypeIdentifier(NAME, VERSION); + assertEquals(NAME, orig.getName()); + assertEquals(VERSION, orig.getVersion()); + } + + @Test + public void testCopyConstructor() { + assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(null)).isInstanceOf(NullPointerException.class); + + ToscaPolicyTypeIdentifier orig = new ToscaPolicyTypeIdentifier(); + + // verify with null values + assertEquals(orig.toString(), new ToscaPolicyTypeIdentifier(orig).toString()); + + // verify with all values + orig = new ToscaPolicyTypeIdentifier(NAME, VERSION); + assertEquals(orig.toString(), new ToscaPolicyTypeIdentifier(orig).toString()); + } + +} diff --git a/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaIdentifierTestBase.java b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaIdentifierTestBase.java new file mode 100644 index 000000000..5c935394b --- /dev/null +++ b/models-tosca/src/test/java/org/onap/policy/models/tosca/authorative/concepts/ToscaIdentifierTestBase.java @@ -0,0 +1,81 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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 org.onap.policy.common.utils.coder.Coder; +import org.onap.policy.common.utils.coder.CoderException; +import org.onap.policy.common.utils.coder.StandardCoder; + +/** + * Super class to test identity keys. + * + * @param type of key being tested + */ +public class ToscaIdentifierTestBase { + + private static final Coder coder = new StandardCoder(); + + private final Class clazz; + + + /** + * Constructs the object. + * @param clazz the type of class being tested + */ + public ToscaIdentifierTestBase(Class clazz) { + this.clazz = clazz; + } + + /** + * Makes an identifier. Uses JSON which does no error checking. + * + * @param name name to put into the identifier + * @param version version to put into the identifier + * @return a new identifier + * @throws CoderException if the JSON cannot be decoded + */ + public T makeIdent(String name, String version) throws CoderException { + StringBuilder bldr = new StringBuilder(); + bldr.append("{"); + + if (name != null) { + bldr.append("'name':'"); + bldr.append(name); + bldr.append("'"); + } + + if (version != null) { + if (name != null) { + bldr.append(','); + } + + bldr.append("'version':'"); + bldr.append(version); + bldr.append("'"); + } + + bldr.append("}"); + + String json = bldr.toString().replace('\'', '"'); + + return coder.decode(json, clazz); + } +} -- cgit 1.2.3-korg