aboutsummaryrefslogtreecommitdiffstats
path: root/models-pdp
diff options
context:
space:
mode:
Diffstat (limited to 'models-pdp')
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java1
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java50
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java61
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java50
-rw-r--r--models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/IdentTestBase.java81
-rw-r--r--models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdent.java90
-rw-r--r--models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdentOptVersion.java87
-rw-r--r--models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyTypeIdent.java91
8 files changed, 510 insertions, 1 deletions
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java
index f7b911fc4..814d35732 100644
--- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java
@@ -25,7 +25,6 @@ import java.util.List;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
-import org.onap.policy.models.base.keys.PolicyTypeIdent;
import org.onap.policy.models.pdp.enums.PdpHealthStatus;
import org.onap.policy.models.pdp.enums.PdpMessageType;
import org.onap.policy.models.pdp.enums.PdpState;
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java
new file mode 100644
index 000000000..6d6b6fedd
--- /dev/null
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdent.java
@@ -0,0 +1,50 @@
+/*
+ * ============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.pdp.concepts;
+
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+import org.onap.policy.models.base.PfConceptKey;
+import org.onap.policy.models.base.PfValidationResult;
+import org.onap.policy.models.base.Validated;
+
+/**
+ * Identifies a policy. Both the name and version must be non-null.
+ */
+@NonNull
+@NoArgsConstructor
+public class PolicyIdent extends PfConceptKey {
+ private static final long serialVersionUID = 1L;
+ private static final Validated validator = new Validated();
+
+ public PolicyIdent(String name, String version) {
+ super(name, version);
+ }
+
+ public PolicyIdent(PolicyIdent source) {
+ super(source);
+ }
+
+ @Override
+ public PfValidationResult validate(PfValidationResult result) {
+ return super.validate(validator.validateNotNull(this, result));
+ }
+}
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java
new file mode 100644
index 000000000..a68a271f2
--- /dev/null
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyIdentOptVersion.java
@@ -0,0 +1,61 @@
+/*
+ * ============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.pdp.concepts;
+
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+import org.onap.policy.models.base.PfConceptKey;
+import org.onap.policy.models.base.PfKey;
+import org.onap.policy.models.base.PfValidationResult;
+import org.onap.policy.models.base.Validated;
+
+/**
+ * Policy identifier with an optional version; only the "name" is required.
+ */
+@NonNull
+@NoArgsConstructor
+public class PolicyIdentOptVersion extends PfConceptKey {
+ private static final long serialVersionUID = 1L;
+ private static final Validated validator = new Validated();
+
+
+ public PolicyIdentOptVersion(PolicyIdentOptVersion source) {
+ super(source);
+ }
+
+ /**
+ * Validates the object.
+ *
+ * @param resultIn where to place any errors
+ * @return a validation result
+ */
+ public PfValidationResult validate(@NonNull final PfValidationResult resultIn) {
+ PfValidationResult result = resultIn;
+
+ String name = getName();
+ if (PfConceptKey.NULL_KEY_NAME.equals(name)) {
+ validator.addError(this, "name", result, "null");
+ }
+ result = validator.validateText(this, "name", name, PfKey.NAME_REGEXP, result);
+
+ return validator.validateText(this, "version", getVersion(), PfKey.VERSION_REGEXP, result);
+ }
+}
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java
new file mode 100644
index 000000000..ef67de86e
--- /dev/null
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PolicyTypeIdent.java
@@ -0,0 +1,50 @@
+/*
+ * ============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.pdp.concepts;
+
+import lombok.NoArgsConstructor;
+import lombok.NonNull;
+import org.onap.policy.models.base.PfConceptKey;
+import org.onap.policy.models.base.PfValidationResult;
+import org.onap.policy.models.base.Validated;
+
+/**
+ * Identifies a policy type. Both the name and version must be non-null.
+ */
+@NonNull
+@NoArgsConstructor
+public class PolicyTypeIdent extends PfConceptKey {
+ private static final long serialVersionUID = 1L;
+ private static final Validated validator = new Validated();
+
+ public PolicyTypeIdent(String name, String version) {
+ super(name, version);
+ }
+
+ public PolicyTypeIdent(PolicyTypeIdent source) {
+ super(source);
+ }
+
+ @Override
+ public PfValidationResult validate(PfValidationResult result) {
+ return super.validate(validator.validateNotNull(this, result));
+ }
+}
diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/IdentTestBase.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/IdentTestBase.java
new file mode 100644
index 000000000..10bc9a997
--- /dev/null
+++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/IdentTestBase.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.pdp.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 <T> type of key being tested
+ */
+public class IdentTestBase<T> {
+
+ private static final Coder coder = new StandardCoder();
+
+ private final Class<T> clazz;
+
+
+ /**
+ * Constructs the object.
+ * @param clazz the type of class being tested
+ */
+ public IdentTestBase(Class<T> 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);
+ }
+}
diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdent.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdent.java
new file mode 100644
index 000000000..4cd5570e2
--- /dev/null
+++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdent.java
@@ -0,0 +1,90 @@
+/*
+ * ============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.pdp.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;
+import org.onap.policy.models.base.PfValidationResult;
+
+/**
+ * Test the other constructors, as {@link TestModels} tests the other methods.
+ */
+public class TestPolicyIdent extends IdentTestBase<PolicyIdent> {
+ private static final String NAME = "my-name";
+ private static final String VERSION = "1.2.3";
+
+ public TestPolicyIdent() {
+ super(PolicyIdent.class);
+ }
+
+ @Test
+ public void testAllArgsConstructor() {
+ assertThatThrownBy(() -> new PolicyIdent(null, VERSION)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> new PolicyIdent(NAME, null)).isInstanceOf(NullPointerException.class);
+
+ PolicyIdent orig = new PolicyIdent(NAME, VERSION);
+ assertEquals(NAME, orig.getName());
+ assertEquals(VERSION, orig.getVersion());
+ }
+
+ @Test
+ public void testCopyConstructor() {
+ assertThatThrownBy(() -> new PolicyIdent(null)).isInstanceOf(NullPointerException.class);
+
+ PolicyIdent orig = new PolicyIdent();
+
+ // verify with null values
+ assertEquals(orig.toString(), new PolicyIdent(orig).toString());
+
+ // verify with all values
+ orig = new PolicyIdent(NAME, VERSION);
+ assertEquals(orig.toString(), new PolicyIdent(orig).toString());
+ }
+
+ @Test
+ public void testValidate() throws Exception {
+ assertTrue(makeIdent(NAME, VERSION).validate(new PfValidationResult()).isValid());
+
+ // everything is null
+ PfValidationResult result = makeIdent(null, null).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(2, result.getMessageList().size());
+
+ // name is null
+ result = makeIdent(null, VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // version is null
+ result = makeIdent(NAME, null).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // version is invalid
+ result = makeIdent(NAME, "!!!" + VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+ }
+}
diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdentOptVersion.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdentOptVersion.java
new file mode 100644
index 000000000..3428ac1be
--- /dev/null
+++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyIdentOptVersion.java
@@ -0,0 +1,87 @@
+/*
+ * ============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.pdp.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;
+import org.onap.policy.models.base.PfValidationResult;
+
+/**
+ * Test the other constructors, as {@link TestModels} tests the other methods.
+ */
+public class TestPolicyIdentOptVersion extends IdentTestBase<PolicyIdentOptVersion> {
+ private static final String NAME = "my-name";
+ private static final String VERSION = "1.2.3";
+
+ public TestPolicyIdentOptVersion() {
+ super(PolicyIdentOptVersion.class);
+ }
+
+ @Test
+ public void testCopyConstructor() throws Exception {
+ assertThatThrownBy(() -> new PolicyIdentOptVersion(null)).isInstanceOf(NullPointerException.class);
+
+ PolicyIdentOptVersion orig = new PolicyIdentOptVersion();
+
+ // verify with null values
+ assertEquals(orig.toString(), new PolicyIdentOptVersion(orig).toString());
+
+ // verify with all values
+ orig = makeIdent(NAME, VERSION);
+ assertEquals(orig.toString(), new PolicyIdentOptVersion(orig).toString());
+ }
+
+ @Test
+ public void testValidate() throws Exception {
+ assertThatThrownBy(() -> makeIdent(NAME, VERSION).validate(null)).isInstanceOf(NullPointerException.class);
+ assertTrue(makeIdent(NAME, VERSION).validate(new PfValidationResult()).isValid());
+ assertTrue(makeIdent(NAME, null).validate(new PfValidationResult()).isValid());
+
+ // everything is null
+ PfValidationResult result = makeIdent(null, null).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // name is null
+ result = makeIdent(null, VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // name is null, version is invalid
+ result = makeIdent(null, "$$$" + VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(2, result.getMessageList().size());
+
+ // name is invalid
+ result = makeIdent("!!!invalid name$$$", VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // version is invalid
+ result = makeIdent(NAME, "!!!" + VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+ }
+}
diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyTypeIdent.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyTypeIdent.java
new file mode 100644
index 000000000..5b7494ebf
--- /dev/null
+++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPolicyTypeIdent.java
@@ -0,0 +1,91 @@
+/*
+ * ============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.pdp.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;
+import org.onap.policy.models.base.PfValidationResult;
+
+/**
+ * Test the other constructors, as {@link TestModels} tests the other methods.
+ */
+public class TestPolicyTypeIdent extends IdentTestBase<PolicyTypeIdent> {
+ private static final String NAME = "my-name";
+ private static final String VERSION = "1.2.3";
+
+ public TestPolicyTypeIdent() {
+ super(PolicyTypeIdent.class);
+ }
+
+ @Test
+ public void testAllArgsConstructor() {
+ assertThatThrownBy(() -> new PolicyTypeIdent(null, VERSION)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> new PolicyTypeIdent(NAME, null)).isInstanceOf(NullPointerException.class);
+
+ PolicyTypeIdent orig = new PolicyTypeIdent(NAME, VERSION);
+ assertEquals(NAME, orig.getName());
+ assertEquals(VERSION, orig.getVersion());
+ }
+
+ @Test
+ public void testCopyConstructor() {
+ assertThatThrownBy(() -> new PolicyTypeIdent(null)).isInstanceOf(NullPointerException.class);
+
+ PolicyTypeIdent orig = new PolicyTypeIdent();
+
+ // verify with null values
+ assertEquals(orig.toString(), new PolicyTypeIdent(orig).toString());
+
+ // verify with all values
+ orig = new PolicyTypeIdent(NAME, VERSION);
+ assertEquals(orig.toString(), new PolicyTypeIdent(orig).toString());
+ }
+
+ @Test
+ public void testValidate() throws Exception {
+ assertTrue(makeIdent(NAME, VERSION).validate(new PfValidationResult()).isValid());
+
+ // everything is null
+ PfValidationResult result = makeIdent(null, null).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(2, result.getMessageList().size());
+
+ // name is null
+ result = makeIdent(null, VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // version is null
+ result = makeIdent(NAME, null).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+
+ // version is invalid
+ result = makeIdent(NAME, "!!!" + VERSION).validate(new PfValidationResult());
+ assertFalse(result.isValid());
+ assertEquals(1, result.getMessageList().size());
+ }
+
+}