aboutsummaryrefslogtreecommitdiffstats
path: root/utils/src/test/java/org/onap/policy/common/utils/properties/exception
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2018-03-23 14:47:42 -0400
committerJim Hahn <jrh3@att.com>2018-03-25 09:03:26 -0400
commitd625f8e805c12301e36392d550b4ca8f8cfa3b5f (patch)
tree8b4cb9e2ef1c3d85e236f2a07a42427e880a8c99 /utils/src/test/java/org/onap/policy/common/utils/properties/exception
parent586e553d141e087566a6b064121910089cf52cff (diff)
Add PropertyConfiguration class
Added PropertyConfiguration class, which provides for the loading of properties into the fields of a subclass. Annotations are used to identify the field to be loaded and the name of the property from which it is to be loaded. Changed attribute "useDefault" to "emptyOk" so that it only has to be specified when the default value is empty. Reformatted a couple of files. Added setAllFields() method. Added getRawPropertyValue() method so subclasses can change how values are extracted from the property set. Added SpecPropertyConfiguration so controller or session names may be embedded within property names. Fixed some typos. Refactored out generalizeType2(). Changed exception classes to take field name instead of Field object. Modified getValue() to take the field name and class type instead of Field object. Removed or fixed comments in junit tests. Added more junit tests. Changed emptyOk attribute to accept, to facilitate adding other options in the future. Corrected comments on the isEmptyOk() methods. Change-Id: I6b190fea687f87cf512fb3236bfcf40b7adc4566 Issue-ID: POLICY-577 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'utils/src/test/java/org/onap/policy/common/utils/properties/exception')
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/BasicPropertyExceptionTester.java130
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAccessExceptionTest.java66
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationExceptionTest.java70
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyExceptionTest.java69
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidExceptionTest.java70
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyMissingExceptionTest.java42
6 files changed, 447 insertions, 0 deletions
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/BasicPropertyExceptionTester.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/BasicPropertyExceptionTester.java
new file mode 100644
index 00000000..1e5fcfcd
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/BasicPropertyExceptionTester.java
@@ -0,0 +1,130 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import org.hamcrest.CoreMatchers;
+
+/**
+ * Superclass used to test subclasses of {@link PropertyException}.
+ */
+public class BasicPropertyExceptionTester {
+
+ /**
+ * The "message" that's passed each time an exception is constructed.
+ */
+ protected static final String MESSAGE = "some error";
+
+ /**
+ * The "throwable" that's passed each time an exception is constructed.
+ */
+ protected static final Throwable THROWABLE = new Throwable();
+
+ /**
+ * Name of the "property" to be passed each time an exception is constructed.
+ */
+ protected static final String PROPERTY = "myName";
+
+ /**
+ * Name of the "property" field.
+ */
+ protected static final String FIELD = "PROPERTY";
+
+ /*
+ * Methods to perform various tests on the except subclass.
+ */
+
+ protected void doTestPropertyExceptionStringField_AllPopulated(PropertyException ex) {
+ standardTests(ex);
+ }
+
+ protected void doTestPropertyExceptionStringField_NullProperty(PropertyException ex) {
+ assertEquals(null, ex.getPropertyName());
+ assertEquals(FIELD, ex.getFieldName());
+ assertNotNull(ex.getMessage());
+ assertNotNull(ex.toString());
+ }
+
+ protected void doTestPropertyExceptionStringField_NullField(PropertyException ex) {
+ assertEquals(PROPERTY, ex.getPropertyName());
+ assertEquals(null, ex.getFieldName());
+ assertNotNull(ex.getMessage());
+ assertNotNull(ex.toString());
+ }
+
+ protected void doTestPropertyExceptionStringField_BothNull(PropertyException ex) {
+ assertEquals(null, ex.getPropertyName());
+ assertEquals(null, ex.getFieldName());
+ assertNotNull(ex.getMessage());
+ assertNotNull(ex.toString());
+ }
+
+ protected void doTestPropertyExceptionStringFieldString(PropertyException ex) {
+ standardTests(ex);
+ standardMessageTests(ex);
+ }
+
+ protected void doTestPropertyExceptionStringFieldThrowable(PropertyException ex) {
+ standardTests(ex);
+ standardThrowableTests(ex);
+ }
+
+ protected void doTestPropertyExceptionStringFieldStringThrowable(PropertyException ex) {
+ standardTests(ex);
+ standardMessageTests(ex);
+ standardThrowableTests(ex);
+ }
+
+ /**
+ * Performs standard tests that should apply to all subclasses.
+ *
+ * @param ex exception to test
+ */
+ protected void standardTests(PropertyException ex) {
+ assertEquals(PROPERTY, ex.getPropertyName());
+ assertEquals(FIELD, ex.getFieldName());
+ assertNotNull(ex.getMessage());
+ assertNotNull(ex.toString());
+ }
+
+ /**
+ * Performs standard tests for exceptions that were provided a message in their
+ * constructor.
+ *
+ * @param ex exception to test
+ */
+ protected void standardMessageTests(PropertyException ex) {
+ assertThat(ex.getMessage(), CoreMatchers.endsWith(MESSAGE));
+ }
+
+ /**
+ * Performs standard tests for exceptions that were provided a throwable in their
+ * constructor.
+ *
+ * @param ex exception to test
+ */
+ protected void standardThrowableTests(PropertyException ex) {
+ assertEquals(THROWABLE, ex.getCause());
+ }
+
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAccessExceptionTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAccessExceptionTest.java
new file mode 100644
index 00000000..304df9df
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAccessExceptionTest.java
@@ -0,0 +1,66 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class PropertyAccessExceptionTest extends BasicPropertyExceptionTester {
+
+ /**
+ * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyAccessExceptionStringField() {
+ doTestPropertyExceptionStringField_AllPopulated( new PropertyAccessException(PROPERTY, FIELD));
+ doTestPropertyExceptionStringField_NullProperty( new PropertyAccessException(null, FIELD));
+ doTestPropertyExceptionStringField_NullField( new PropertyAccessException(PROPERTY, null));
+ doTestPropertyExceptionStringField_BothNull( new PropertyAccessException(null, null));
+ }
+
+ /**
+ * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyAccessExceptionStringFieldString() {
+ doTestPropertyExceptionStringFieldString(new PropertyAccessException(PROPERTY, FIELD, MESSAGE));
+ }
+
+ /**
+ * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyAccessExceptionStringFieldThrowable() {
+ doTestPropertyExceptionStringFieldThrowable(new PropertyAccessException(PROPERTY, FIELD, THROWABLE));
+ }
+
+ /**
+ * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyAccessExceptionStringFieldStringThrowable() {
+ doTestPropertyExceptionStringFieldStringThrowable(
+ new PropertyAccessException(PROPERTY, FIELD, MESSAGE, THROWABLE));
+ }
+
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationExceptionTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationExceptionTest.java
new file mode 100644
index 00000000..2c033084
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationExceptionTest.java
@@ -0,0 +1,70 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class PropertyAnnotationExceptionTest extends BasicPropertyExceptionTester {
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringField() {
+ doTestPropertyExceptionStringField_AllPopulated(new PropertyAnnotationException(PROPERTY, FIELD));
+ doTestPropertyExceptionStringField_NullProperty(new PropertyAnnotationException(null, FIELD));
+ doTestPropertyExceptionStringField_NullField(new PropertyAnnotationException(PROPERTY, null));
+ doTestPropertyExceptionStringField_BothNull(new PropertyAnnotationException(null, null));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldString() {
+ doTestPropertyExceptionStringFieldString(new PropertyAnnotationException(PROPERTY, FIELD, MESSAGE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldThrowable() {
+ doTestPropertyExceptionStringFieldThrowable(new PropertyAnnotationException(PROPERTY, FIELD, THROWABLE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldStringThrowable() {
+ doTestPropertyExceptionStringFieldStringThrowable(
+ new PropertyAnnotationException(PROPERTY, FIELD, MESSAGE, THROWABLE));
+ }
+
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyExceptionTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyExceptionTest.java
new file mode 100644
index 00000000..18186ba2
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyExceptionTest.java
@@ -0,0 +1,69 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class PropertyExceptionTest extends BasicPropertyExceptionTester {
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringField() {
+ doTestPropertyExceptionStringField_AllPopulated(new PropertyException(PROPERTY, FIELD));
+ doTestPropertyExceptionStringField_NullProperty(new PropertyException(null, FIELD));
+ doTestPropertyExceptionStringField_NullField(new PropertyException(PROPERTY, null));
+ doTestPropertyExceptionStringField_BothNull(new PropertyException(null, null));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldString() {
+ doTestPropertyExceptionStringFieldString(new PropertyException(PROPERTY, FIELD, MESSAGE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldThrowable() {
+ doTestPropertyExceptionStringFieldThrowable(new PropertyException(PROPERTY, FIELD, THROWABLE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldStringThrowable() {
+ doTestPropertyExceptionStringFieldStringThrowable(new PropertyException(PROPERTY, FIELD, MESSAGE, THROWABLE));
+ }
+
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidExceptionTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidExceptionTest.java
new file mode 100644
index 00000000..f83b7ed3
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidExceptionTest.java
@@ -0,0 +1,70 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class PropertyInvalidExceptionTest extends BasicPropertyExceptionTester {
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringField() {
+ doTestPropertyExceptionStringField_AllPopulated(new PropertyInvalidException(PROPERTY, FIELD));
+ doTestPropertyExceptionStringField_NullProperty(new PropertyInvalidException(null, FIELD));
+ doTestPropertyExceptionStringField_NullField(new PropertyInvalidException(PROPERTY, null));
+ doTestPropertyExceptionStringField_BothNull(new PropertyInvalidException(null, null));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldString() {
+ doTestPropertyExceptionStringFieldString(new PropertyInvalidException(PROPERTY, FIELD, MESSAGE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldThrowable() {
+ doTestPropertyExceptionStringFieldThrowable(new PropertyInvalidException(PROPERTY, FIELD, THROWABLE));
+ }
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String, java.lang.Throwable)}.
+ */
+ @Test
+ public void testPropertyExceptionStringFieldStringThrowable() {
+ doTestPropertyExceptionStringFieldStringThrowable(
+ new PropertyInvalidException(PROPERTY, FIELD, MESSAGE, THROWABLE));
+ }
+
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyMissingExceptionTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyMissingExceptionTest.java
new file mode 100644
index 00000000..f99ddd93
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/properties/exception/PropertyMissingExceptionTest.java
@@ -0,0 +1,42 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP Policy Engine - Common Modules
+ * ================================================================================
+ * Copyright (C) 2018 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.common.utils.properties.exception;
+
+import org.junit.Test;
+
+/**
+ *
+ */
+public class PropertyMissingExceptionTest extends BasicPropertyExceptionTester {
+
+ /**
+ * Test method for
+ * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testPropertyExceptionStringField() {
+ doTestPropertyExceptionStringField_AllPopulated(new PropertyMissingException(PROPERTY, FIELD));
+ doTestPropertyExceptionStringField_NullProperty(new PropertyMissingException(null, FIELD));
+ doTestPropertyExceptionStringField_NullField(new PropertyMissingException(PROPERTY, null));
+ doTestPropertyExceptionStringField_BothNull(new PropertyMissingException(null, null));
+ }
+
+}