diff options
28 files changed, 1069 insertions, 999 deletions
diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/ConstructionError.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/ConstructionError.java index 0ae4fb97..d3438577 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/ConstructionError.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/ConstructionError.java @@ -24,35 +24,41 @@ package org.onap.policy.common.utils.test; * An error that occurred while trying to construct an object for a junit test. */ public class ConstructionError extends AssertionError { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; - /** - * - */ - public ConstructionError() { - super(); - } + /** + * Constructor. + */ + public ConstructionError() { + super(); + } - /** - * @param message denotes the error message - */ - public ConstructionError(final String message) { - super(message); - } + /** + * Constructor. + * + * @param message denotes the error message + */ + public ConstructionError(final String message) { + super(message); + } - /** - * @param cause denotes the cause of the error - */ - public ConstructionError(final Throwable cause) { - super(cause); - } + /** + * Constructor. + * + * @param cause denotes the cause of the error + */ + public ConstructionError(final Throwable cause) { + super(cause); + } - /** - * @param message denotes the error message - * @param cause denotes the cause of the error - */ - public ConstructionError(final String message, final Throwable cause) { - super(message, cause); - } + /** + * Constructor. + * + * @param message denotes the error message + * @param cause denotes the cause of the error + */ + public ConstructionError(final String message, final Throwable cause) { + super(message, cause); + } } diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/ErrorsTester.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/ErrorsTester.java index e63b073e..ab876b6e 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/ErrorsTester.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/ErrorsTester.java @@ -26,23 +26,23 @@ package org.onap.policy.common.utils.test; */ public class ErrorsTester extends ThrowablesTester { - /** - * Runs tests, on an Error subclass, for all of the standard - * constructors.If the Error subclass does not support a given - * type of constructor, then it skips that test. - * Does <i>not</i> throw an exception if no standard constructors - * are found. - * - * @param claz subclass to be tested - * @param <T> this needs to be declared - * - * @return the number of constructors that were found/tested - * @throws ConstructionError - * if the Error subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public <T extends Error> int testAllError(final Class<T> claz) { - return testAllThrowable(claz); - } + /** + * Runs tests, on an Error subclass, for all of the standard + * constructors.If the Error subclass does not support a given + * type of constructor, then it skips that test. + * Does <i>not</i> throw an exception if no standard constructors + * are found. + * + * @param claz subclass to be tested + * @param <T> this needs to be declared + * + * @return the number of constructors that were found/tested + * @throws ConstructionError + * if the Error subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public <T extends Error> int testAllError(final Class<T> claz) { + return testAllThrowable(claz); + } } diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/ExceptionsTester.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/ExceptionsTester.java index 7208748a..f457dd21 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/ExceptionsTester.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/ExceptionsTester.java @@ -32,176 +32,176 @@ import java.lang.reflect.Constructor; */ public class ExceptionsTester extends ThrowablesTester { - /** - * Runs tests, on an Exception subclass, for all of the standard - * constructors. If the Exception subclass does not support a given - * type of constructor, then it skips that test. - * - * @param claz subclass to be tested - * @param <T> Type of the class - * - * @return the number of constructors that were found/tested - * @throws ConstructionError - * if the Exception subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public <T extends Exception> int test(final Class<T> claz) { - int ncons = testAllException(claz); - - assertTrue(ncons > 0); - - return ncons; - } - - /** - * Runs tests, on an Exception subclass, for all of the standard - * constructors. If the Exception subclass does not support a given - * type of constructor, then it skips that test. Does <i>not</i> throw - * an exception if no standard constructors are found. - * - * @param claz subclass to be tested - * @param <T> type of the class - * - * @return the number of constructors that were found/tested - * @throws ConstructionError - * if the Exception subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public <T extends Exception> int testAllException(final Class<T> claz) { - int ncons = 0; - - ncons += testAllThrowable(claz); - ncons += testException(claz); - ncons += testStringException(claz); - ncons += testStringExceptionBooleanBoolean(claz); - - return ncons; - } - - /** - * Tests exceptions created via the constructor that takes just an - * Exception. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the cause's message</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * </ul> - * - * If the Exception subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz subclass to be tested - * @param <T> Type of the class - * - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Exception subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public <T extends Exception> int testException(final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "exception", - Exception.class); - - if (cons == null) { - return 0; - } - - Exception cause = new Exception(EXPECTED_EXCEPTION_MSG); - T ex = newInstance(cons, cause); - - assertNotNull(ex.toString()); - assertEquals(ex.getMessage(), ex.getMessage()); - assertEquals(cause, ex.getCause()); - - return 1; - } - - /** - * Tests exceptions created via the constructor that takes a String - * and an Exception. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to - * the constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * </ul> - * - * If the Exception subclass does not support this type of - * constructor, then this method simply returns. - * - * @param claz subclass to be tested - * @param <T> Type of the class - * - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Exception subclass cannot be constructed - */ - public <T extends Exception> int testStringException( - final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "string-exception", - String.class, Exception.class); - if (cons == null) { - return 0; - } - - Exception cause = new Exception(EXPECTED_EXCEPTION_MSG); - T ex = newInstance(cons, "world", cause); - - assertNotNull(ex.toString()); - assertEquals("world", ex.getMessage()); - assertEquals(cause, ex.getCause()); - - return 1; - } - - /** - * Tests exceptions created via the constructor that takes a String, an - * Exception, and two booleans. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions can be added, if enabled</li> - * <li>the stack trace can be added, if enabled</li> - * </ul> - * - * If the Exception subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz subclass to be tested - * @param <T> Type of the class - * - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Exception subclass cannot be constructed - */ - public <T extends Exception> int testStringExceptionBooleanBoolean( - final Class<T> claz) { - - Constructor<T> cons = getConstructor(claz, - "string-exception-flags", String.class, Exception.class, - Boolean.TYPE, Boolean.TYPE); - - if (cons == null) { - return 0; - } - - // test each combination of "message" and "cause" - testMessageCauseCombos(cons); - - // test each combination of the boolean flags - testFlagCombos(cons); - - return 1; - } + /** + * Runs tests, on an Exception subclass, for all of the standard + * constructors. If the Exception subclass does not support a given + * type of constructor, then it skips that test. + * + * @param claz subclass to be tested + * @param <T> Type of the class + * + * @return the number of constructors that were found/tested + * @throws ConstructionError + * if the Exception subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public <T extends Exception> int test(final Class<T> claz) { + int ncons = testAllException(claz); + + assertTrue(ncons > 0); + + return ncons; + } + + /** + * Runs tests, on an Exception subclass, for all of the standard + * constructors. If the Exception subclass does not support a given + * type of constructor, then it skips that test. Does <i>not</i> throw + * an exception if no standard constructors are found. + * + * @param claz subclass to be tested + * @param <T> type of the class + * + * @return the number of constructors that were found/tested + * @throws ConstructionError + * if the Exception subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public <T extends Exception> int testAllException(final Class<T> claz) { + int ncons = 0; + + ncons += testAllThrowable(claz); + ncons += testException(claz); + ncons += testStringException(claz); + ncons += testStringExceptionBooleanBoolean(claz); + + return ncons; + } + + /** + * Tests exceptions created via the constructor that takes just an + * Exception. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the cause's message</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * </ul> + * + * <p>If the Exception subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz subclass to be tested + * @param <T> Type of the class + * + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Exception subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public <T extends Exception> int testException(final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "exception", + Exception.class); + + if (cons == null) { + return 0; + } + + Exception cause = new Exception(EXPECTED_EXCEPTION_MSG); + T ex = newInstance(cons, cause); + + assertNotNull(ex.toString()); + assertEquals(ex.getMessage(), ex.getMessage()); + assertEquals(cause, ex.getCause()); + + return 1; + } + + /** + * Tests exceptions created via the constructor that takes a String + * and an Exception. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to + * the constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * </ul> + * + * <p>If the Exception subclass does not support this type of + * constructor, then this method simply returns. + * + * @param claz subclass to be tested + * @param <T> Type of the class + * + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Exception subclass cannot be constructed + */ + public <T extends Exception> int testStringException( + final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "string-exception", + String.class, Exception.class); + if (cons == null) { + return 0; + } + + Exception cause = new Exception(EXPECTED_EXCEPTION_MSG); + T ex = newInstance(cons, "world", cause); + + assertNotNull(ex.toString()); + assertEquals("world", ex.getMessage()); + assertEquals(cause, ex.getCause()); + + return 1; + } + + /** + * Tests exceptions created via the constructor that takes a String, an + * Exception, and two booleans. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions can be added, if enabled</li> + * <li>the stack trace can be added, if enabled</li> + * </ul> + * + * <p>If the Exception subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz subclass to be tested + * @param <T> Type of the class + * + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Exception subclass cannot be constructed + */ + public <T extends Exception> int testStringExceptionBooleanBoolean( + final Class<T> claz) { + + Constructor<T> cons = getConstructor(claz, + "string-exception-flags", String.class, Exception.class, + Boolean.TYPE, Boolean.TYPE); + + if (cons == null) { + return 0; + } + + // test each combination of "message" and "cause" + testMessageCauseCombos(cons); + + // test each combination of the boolean flags + testFlagCombos(cons); + + return 1; + } } diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/ThrowablesTester.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/ThrowablesTester.java index c77b7813..0fba944e 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/ThrowablesTester.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/ThrowablesTester.java @@ -37,529 +37,529 @@ import org.slf4j.LoggerFactory; */ public class ThrowablesTester { - private static Logger logger = - LoggerFactory.getLogger(ThrowablesTester.class); - - public static final String EXPECTED_EXCEPTION_MSG = - "expected exception"; - private static final String EXPECTED_SUPPRESSED_EXCEPTION_MSG = - "expected suppressed exception"; - - /** - * Passed as a "cause" to constructors. - */ - public static final Exception CAUSE = - new Exception(EXPECTED_EXCEPTION_MSG); - - /** - * Passed to new objects via the <i>addSuppressed()</i> method.. - */ - public static final Throwable SUPPRESSED = - new Throwable(EXPECTED_SUPPRESSED_EXCEPTION_MSG); - - /** - * Runs tests, on an Throwable subclass, for all of the - * standard constructors. If the Throwable subclass does - * not support a given type of constructor, then it skips - * that test. Does <i>not</i> throw an exception if no - * standard constructors are found. - * - * @param claz subclass to be tested - * @param <T> To be defined - * @return the number of constructors that were found/tested - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int testAllThrowable( - final Class<T> claz) { - int ncons = 0; - - ncons += testDefault(claz); - ncons += testString(claz); - ncons += testThrowable(claz); - ncons += testStringThrowable(claz); - ncons += testStringThrowableBooleanBoolean(claz); - - return ncons; - } - - /** - * Tests Throwable objects created via the default constructor. Verifies - * that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns null</li> - * <li><i>getCause()</i> returns null</li> - * </ul> - * - * If the Throwable subclass does not support this type of - * constructor, then this method simply returns. - * - * @param claz subclass to be tested - * @param <T> to be defined - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int testDefault( - final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "default"); - if (cons == null) { - return 0; - } - - T ex = newInstance(cons); - - assertNotNull(ex.toString()); - assertNull(ex.getMessage()); - assertNull(ex.getCause()); - - return 1; - } - - /** - * Tests Throwable objects created via the constructor that takes just a - * String. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns null</li> - * </ul> - * - * If the Throwable subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz - * subclass to be tested - * @param <T> to be defined - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int testString(final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "string", - String.class); - if (cons == null) { - return 0; - } - - T ex = newInstance(cons, "hello"); - - assertNotNull(ex.toString()); - assertEquals("hello", ex.getMessage()); - assertNull(ex.getCause()); - - return 1; - } - - /** - * Tests Throwable objects created via the constructor that takes just a - * Throwable. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the cause's message</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * </ul> - * - * If the Throwable subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz - * subclass to be tested - * @param <T> to be defined - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int testThrowable( - final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "throwable", - Throwable.class); - if (cons == null) { - return 0; - } - - T ex = newInstance(cons, CAUSE); - - assertEquals(ex.getMessage(), ex.getMessage()); - assertNotNull(ex.toString()); - assertEquals(CAUSE, ex.getCause()); - - return 1; - } - - /** - * Tests Throwable objects created via the constructor that takes - * a String and a Throwable. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * </ul> - * - * If the Throwable subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz subclass to be tested - * @param <T> to be defined - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int testStringThrowable( - final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, "string-throwable", - String.class, Throwable.class); - if (cons == null) { - return 0; - } - - T ex = newInstance(cons, "world", CAUSE); - - assertNotNull(ex.toString()); - assertEquals("world", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - return 1; - } - - /** - * Tests Throwable objects created via the constructor that takes - * a String, a Throwable, and two booleans. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions can be added, if enabled</li> - * <li>the stack trace can be added, if enabled</li> - * </ul> - * - * If the Throwable subclass does not support this type of constructor, - * then this method simply returns. - * - * @param claz - * subclass to be tested - * @param <T> to be defined - * @return {@code 1}, if the subclass supports this type of constructor, - * {@code 0} otherwise - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> int - testStringThrowableBooleanBoolean( - final Class<T> claz) { - Constructor<T> cons = getConstructor(claz, - "string-throwable-flags", - String.class, Throwable.class, - Boolean.TYPE, Boolean.TYPE); - if (cons == null) { - return 0; - } - - // test each combination of "message" and "cause" - testMessageCauseCombos(cons); - - // test each combination of the boolean flags - testSuppressStack(cons); - testSuppressNoStack(cons); - testNoSuppressStack(cons); - testNoSuppressNoStack(cons); - - return 1; - } - - /** - * Tests each combination of values for the "message" and the "cause" - * when using the constructor that takes a String, - * a Throwable/Exception, and two booleans. Verifies that expected - * values are returned - * <ul> - * <i>toString()</i>, - * <i>getMessage()</i>, and <i>getCause()</i>. - * </ul> - * - * @param cons - * constructor to be invoked - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testMessageCauseCombos( - final Constructor<T> cons) { - T ex; - - ex = newInstance(cons, null, null, true, true); - assertNotNull(ex.toString()); - assertNull(ex.getMessage()); - assertNull(ex.getCause()); - - ex = newInstance(cons, "abc", null, true, true); - assertNotNull(ex.toString()); - assertEquals("abc", ex.getMessage()); - assertNull(ex.getCause()); - - ex = newInstance(cons, null, CAUSE, true, true); - assertNotNull(ex.toString()); - assertNull(ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - ex = newInstance(cons, "xyz", CAUSE, true, true); - assertNotNull(ex.toString()); - assertEquals("xyz", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - } - - /** - * Tests each combination of values for the "message" and the - * "cause" when using the constructor that takes a String, - * a Throwable/Exception, and two booleans. Verifies that - * expected values are returned by - * <ul> - * <i>toString()</i>, - * <i>getMessage()</i>, and <i>getCause()</i>. - * </ul> - * - * @param cons - * constructor to be invoked - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testFlagCombos( - final Constructor<T> cons) { - testSuppressStack(cons); - testSuppressNoStack(cons); - testNoSuppressStack(cons); - testNoSuppressNoStack(cons); - } - - /** - * Tests Throwable objects constructed with - * {@code enableSuppression=true} and - * {@code writableStackTrace=true}. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions are added</li> - * <li>the stack trace is added</li> - * </ul> - * - * @param cons - * the throwable's class constructor - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testSuppressStack( - final Constructor<T> cons) { - T ex = newInstance(cons, "yes,yes", CAUSE, true, true); - - ex.addSuppressed(SUPPRESSED); - - assertNotNull(ex.toString()); - assertEquals("yes,yes", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - assertEquals(1, ex.getSuppressed().length); - assertEquals(SUPPRESSED, ex.getSuppressed()[0]); - - assertTrue(ex.getStackTrace().length > 0); - } - - /** - * Tests Throwable objects constructed with - * {@code enableSuppression=true} and - * {@code writableStackTrace=false}. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions are added</li> - * <li>the stack trace is <i>not</i> added</li> - * </ul> - * - * @param cons - * the throwable's class constructor - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testSuppressNoStack( - final Constructor<T> cons) { - T ex = newInstance(cons, "yes,no", CAUSE, true, false); - - ex.addSuppressed(SUPPRESSED); - - assertNotNull(ex.toString()); - assertEquals("yes,no", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - assertEquals(1, ex.getSuppressed().length); - assertEquals(SUPPRESSED, ex.getSuppressed()[0]); - - assertEquals(0, ex.getStackTrace().length); - } - - /** - * Tests Throwable objects constructed with - * {@code enableSuppression=false} and - * {@code writableStackTrace=true}. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions are <i>not</i> added</li> - * <li>the stack trace is added</li> - * </ul> - * - * @param cons - * the throwable's class constructor - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testNoSuppressStack( - final Constructor<T> cons) { - T ex = newInstance(cons, "no,yes", CAUSE, false, true); - - ex.addSuppressed(SUPPRESSED); - - assertNotNull(ex.toString()); - assertEquals("no,yes", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - assertEquals(0, ex.getSuppressed().length); - - assertTrue(ex.getStackTrace().length > 0); - } - - /** - * Tests Throwable objects constructed with - * {@code enableSuppression=false} and - * {@code writableStackTrace=false}. Verifies that: - * <ul> - * <li><i>toString()</i> returns a non-null value</li> - * <li><i>getMessage()</i> returns the original message passed to the - * constructor</li> - * <li><i>getCause()</i> returns the original cause passed to the - * constructor</li> - * <li>suppressed exceptions are <i>not</i> added</li> - * <li>the stack trace is <i>not</i> added</li> - * </ul> - * @param cons - * the throwable's class constructor - * @param <T> to be defined - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - * @throws AssertionError - * if the constructed objects fail to pass various tests - */ - public final <T extends Throwable> void testNoSuppressNoStack( - final Constructor<T> cons) { - T ex = newInstance(cons, "no,no", CAUSE, false, false); - - ex.addSuppressed(SUPPRESSED); - - assertNotNull(ex.toString()); - assertEquals("no,no", ex.getMessage()); - assertEquals(CAUSE, ex.getCause()); - - assertEquals(0, ex.getSuppressed().length); - assertEquals(0, ex.getStackTrace().length); - } - - /** - * Attempts to get a constructor for objects of a given type. - * - * @param claz - * class of objects whose constructor is to be gotten - * @param <T> to be defined - * @param testType - * type of test being run - * @param argTypes - * argument types to be passed to the constructor - * @return the desired constructor, or {@code null} if the desired - * constructor is not available - */ - protected <T extends Throwable> Constructor<T> getConstructor( - final Class<T> claz, - final String testType, - final Class<?>... argTypes) { - - try { - return claz.getConstructor(argTypes); - - } catch (NoSuchMethodException | SecurityException e) { - // this constructor is not defined so nothing to test - logger.debug("skipped test, no constructor for: " - + claz + " due to: " + e); - return null; - } - } - - /** - * Creates a new instance of an Throwable subclass. - * - * @param cons - * subclass constructor - * @param <T> to be defined - * @param args - * arguments to be passed to the constructor - * @return a new instance of the Throwable subclass - * @throws ConstructionError - * if the Throwable subclass cannot be constructed - */ - protected <T extends Throwable> T newInstance( - final Constructor<T> cons, - final Object... args) { - try { - return cons.newInstance(args); - - } catch (InstantiationException | IllegalAccessException - | IllegalArgumentException - | InvocationTargetException e) { - - throw new ConstructionError(e); - } - - } + private static Logger logger = + LoggerFactory.getLogger(ThrowablesTester.class); + + public static final String EXPECTED_EXCEPTION_MSG = + "expected exception"; + private static final String EXPECTED_SUPPRESSED_EXCEPTION_MSG = + "expected suppressed exception"; + + /** + * Passed as a "cause" to constructors. + */ + public static final Exception CAUSE = + new Exception(EXPECTED_EXCEPTION_MSG); + + /** + * Passed to new objects via the <i>addSuppressed()</i> method.. + */ + public static final Throwable SUPPRESSED = + new Throwable(EXPECTED_SUPPRESSED_EXCEPTION_MSG); + + /** + * Runs tests, on an Throwable subclass, for all of the + * standard constructors. If the Throwable subclass does + * not support a given type of constructor, then it skips + * that test. Does <i>not</i> throw an exception if no + * standard constructors are found. + * + * @param claz subclass to be tested + * @param <T> To be defined + * @return the number of constructors that were found/tested + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int testAllThrowable( + final Class<T> claz) { + int ncons = 0; + + ncons += testDefault(claz); + ncons += testString(claz); + ncons += testThrowable(claz); + ncons += testStringThrowable(claz); + ncons += testStringThrowableBooleanBoolean(claz); + + return ncons; + } + + /** + * Tests Throwable objects created via the default constructor. Verifies + * that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns null</li> + * <li><i>getCause()</i> returns null</li> + * </ul> + * + * <p>If the Throwable subclass does not support this type of + * constructor, then this method simply returns. + * + * @param claz subclass to be tested + * @param <T> to be defined + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int testDefault( + final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "default"); + if (cons == null) { + return 0; + } + + T ex = newInstance(cons); + + assertNotNull(ex.toString()); + assertNull(ex.getMessage()); + assertNull(ex.getCause()); + + return 1; + } + + /** + * Tests Throwable objects created via the constructor that takes just a + * String. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns null</li> + * </ul> + * + * <p>If the Throwable subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz + * subclass to be tested + * @param <T> to be defined + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int testString(final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "string", + String.class); + if (cons == null) { + return 0; + } + + T ex = newInstance(cons, "hello"); + + assertNotNull(ex.toString()); + assertEquals("hello", ex.getMessage()); + assertNull(ex.getCause()); + + return 1; + } + + /** + * Tests Throwable objects created via the constructor that takes just a + * Throwable. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the cause's message</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * </ul> + * + * <p>If the Throwable subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz + * subclass to be tested + * @param <T> to be defined + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int testThrowable( + final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "throwable", + Throwable.class); + if (cons == null) { + return 0; + } + + T ex = newInstance(cons, CAUSE); + + assertEquals(ex.getMessage(), ex.getMessage()); + assertNotNull(ex.toString()); + assertEquals(CAUSE, ex.getCause()); + + return 1; + } + + /** + * Tests Throwable objects created via the constructor that takes + * a String and a Throwable. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * </ul> + * + * <p>If the Throwable subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz subclass to be tested + * @param <T> to be defined + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int testStringThrowable( + final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, "string-throwable", + String.class, Throwable.class); + if (cons == null) { + return 0; + } + + T ex = newInstance(cons, "world", CAUSE); + + assertNotNull(ex.toString()); + assertEquals("world", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + return 1; + } + + /** + * Tests Throwable objects created via the constructor that takes + * a String, a Throwable, and two booleans. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions can be added, if enabled</li> + * <li>the stack trace can be added, if enabled</li> + * </ul> + * + * <p>If the Throwable subclass does not support this type of constructor, + * then this method simply returns. + * + * @param claz + * subclass to be tested + * @param <T> to be defined + * @return {@code 1}, if the subclass supports this type of constructor, + * {@code 0} otherwise + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> int + testStringThrowableBooleanBoolean( + final Class<T> claz) { + Constructor<T> cons = getConstructor(claz, + "string-throwable-flags", + String.class, Throwable.class, + Boolean.TYPE, Boolean.TYPE); + if (cons == null) { + return 0; + } + + // test each combination of "message" and "cause" + testMessageCauseCombos(cons); + + // test each combination of the boolean flags + testSuppressStack(cons); + testSuppressNoStack(cons); + testNoSuppressStack(cons); + testNoSuppressNoStack(cons); + + return 1; + } + + /** + * Tests each combination of values for the "message" and the "cause" + * when using the constructor that takes a String, + * a Throwable/Exception, and two booleans. Verifies that expected + * values are returned + * <ul> + * <i>toString()</i>, + * <i>getMessage()</i>, and <i>getCause()</i>. + * </ul> + * + * @param cons + * constructor to be invoked + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testMessageCauseCombos( + final Constructor<T> cons) { + T ex; + + ex = newInstance(cons, null, null, true, true); + assertNotNull(ex.toString()); + assertNull(ex.getMessage()); + assertNull(ex.getCause()); + + ex = newInstance(cons, "abc", null, true, true); + assertNotNull(ex.toString()); + assertEquals("abc", ex.getMessage()); + assertNull(ex.getCause()); + + ex = newInstance(cons, null, CAUSE, true, true); + assertNotNull(ex.toString()); + assertNull(ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + ex = newInstance(cons, "xyz", CAUSE, true, true); + assertNotNull(ex.toString()); + assertEquals("xyz", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + } + + /** + * Tests each combination of values for the "message" and the + * "cause" when using the constructor that takes a String, + * a Throwable/Exception, and two booleans. Verifies that + * expected values are returned by + * <ul> + * <i>toString()</i>, + * <i>getMessage()</i>, and <i>getCause()</i>. + * </ul> + * + * @param cons + * constructor to be invoked + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testFlagCombos( + final Constructor<T> cons) { + testSuppressStack(cons); + testSuppressNoStack(cons); + testNoSuppressStack(cons); + testNoSuppressNoStack(cons); + } + + /** + * Tests Throwable objects constructed with + * {@code enableSuppression=true} and + * {@code writableStackTrace=true}. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions are added</li> + * <li>the stack trace is added</li> + * </ul> + * + * @param cons + * the throwable's class constructor + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testSuppressStack( + final Constructor<T> cons) { + T ex = newInstance(cons, "yes,yes", CAUSE, true, true); + + ex.addSuppressed(SUPPRESSED); + + assertNotNull(ex.toString()); + assertEquals("yes,yes", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + assertEquals(1, ex.getSuppressed().length); + assertEquals(SUPPRESSED, ex.getSuppressed()[0]); + + assertTrue(ex.getStackTrace().length > 0); + } + + /** + * Tests Throwable objects constructed with + * {@code enableSuppression=true} and + * {@code writableStackTrace=false}. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions are added</li> + * <li>the stack trace is <i>not</i> added</li> + * </ul> + * + * @param cons + * the throwable's class constructor + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testSuppressNoStack( + final Constructor<T> cons) { + T ex = newInstance(cons, "yes,no", CAUSE, true, false); + + ex.addSuppressed(SUPPRESSED); + + assertNotNull(ex.toString()); + assertEquals("yes,no", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + assertEquals(1, ex.getSuppressed().length); + assertEquals(SUPPRESSED, ex.getSuppressed()[0]); + + assertEquals(0, ex.getStackTrace().length); + } + + /** + * Tests Throwable objects constructed with + * {@code enableSuppression=false} and + * {@code writableStackTrace=true}. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions are <i>not</i> added</li> + * <li>the stack trace is added</li> + * </ul> + * + * @param cons + * the throwable's class constructor + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testNoSuppressStack( + final Constructor<T> cons) { + T ex = newInstance(cons, "no,yes", CAUSE, false, true); + + ex.addSuppressed(SUPPRESSED); + + assertNotNull(ex.toString()); + assertEquals("no,yes", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + assertEquals(0, ex.getSuppressed().length); + + assertTrue(ex.getStackTrace().length > 0); + } + + /** + * Tests Throwable objects constructed with + * {@code enableSuppression=false} and + * {@code writableStackTrace=false}. Verifies that: + * <ul> + * <li><i>toString()</i> returns a non-null value</li> + * <li><i>getMessage()</i> returns the original message passed to the + * constructor</li> + * <li><i>getCause()</i> returns the original cause passed to the + * constructor</li> + * <li>suppressed exceptions are <i>not</i> added</li> + * <li>the stack trace is <i>not</i> added</li> + * </ul> + * @param cons + * the throwable's class constructor + * @param <T> to be defined + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + * @throws AssertionError + * if the constructed objects fail to pass various tests + */ + public final <T extends Throwable> void testNoSuppressNoStack( + final Constructor<T> cons) { + T ex = newInstance(cons, "no,no", CAUSE, false, false); + + ex.addSuppressed(SUPPRESSED); + + assertNotNull(ex.toString()); + assertEquals("no,no", ex.getMessage()); + assertEquals(CAUSE, ex.getCause()); + + assertEquals(0, ex.getSuppressed().length); + assertEquals(0, ex.getStackTrace().length); + } + + /** + * Attempts to get a constructor for objects of a given type. + * + * @param claz + * class of objects whose constructor is to be gotten + * @param <T> to be defined + * @param testType + * type of test being run + * @param argTypes + * argument types to be passed to the constructor + * @return the desired constructor, or {@code null} if the desired + * constructor is not available + */ + protected <T extends Throwable> Constructor<T> getConstructor( + final Class<T> claz, + final String testType, + final Class<?>... argTypes) { + + try { + return claz.getConstructor(argTypes); + + } catch (NoSuchMethodException | SecurityException e) { + // this constructor is not defined so nothing to test + logger.debug("skipped test, no constructor for: " + + claz + " due to: " + e); + return null; + } + } + + /** + * Creates a new instance of an Throwable subclass. + * + * @param cons + * subclass constructor + * @param <T> to be defined + * @param args + * arguments to be passed to the constructor + * @return a new instance of the Throwable subclass + * @throws ConstructionError + * if the Throwable subclass cannot be constructed + */ + protected <T extends Throwable> T newInstance( + final Constructor<T> cons, + final Object... args) { + try { + return cons.newInstance(args); + + } catch (InstantiationException | IllegalAccessException + | IllegalArgumentException + | InvocationTargetException e) { + + throw new ConstructionError(e); + } + + } } diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/log/logback/ExtractAppender.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/log/logback/ExtractAppender.java index 14bceb4c..5ccb13ee 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/log/logback/ExtractAppender.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/log/logback/ExtractAppender.java @@ -20,6 +20,8 @@ package org.onap.policy.common.utils.test.log.logback; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.AppenderBase; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.LinkedList; @@ -28,9 +30,6 @@ import java.util.Queue; import java.util.regex.Matcher; import java.util.regex.Pattern; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.AppenderBase; - /** * This is an appender that is intended for use by JUnit tests that wish to * capture logged messages. The appender takes an optional list of regular @@ -46,147 +45,147 @@ import ch.qos.logback.core.AppenderBase; */ public class ExtractAppender extends AppenderBase<ILoggingEvent> { - /** - * Extracted text is placed here. - */ - private final Queue<String> extracted; - - /** - * Regular expressions/Patterns to be used to extract text. Uses a - * LinkedHashMap so that order is preserved. - */ - private final LinkedHashMap<String, Pattern> patterns; - - /** - * Records every message that is logged. - */ - public ExtractAppender() { - this(new LinkedList<>()); - } - - /** - * Records portions of messages that match one of the regular - * expressions. - * - * @param regex - * regular expression (i.e., {@link Pattern}) to match - */ - public ExtractAppender(final String... regex) { - this(new LinkedList<>(), regex); - } - - /** - * Rather than allocating an internal queue to store matched messages, - * messages are recorded in the specified target queue using the - * {@link Queue#offer(Object)} method. Note: whenever the queue is used, - * it will be synchronized to prevent simultaneous accesses. - * - * @param target - queue into which the matched text should be placed - * @param regex regular expression (i.e., {@link Pattern}) to match - */ - public ExtractAppender(final Queue<String> target, - final String... regex) { - extracted = target; - patterns = new LinkedHashMap<>(regex.length); - - for (String re : regex) { - patterns.put(re, Pattern.compile(re)); - } - } - - /* - * (non-Javadoc) - * - * @see ch.qos.logback.core.AppenderBase#append(Object) - */ - @Override - protected void append(final ILoggingEvent event) { - - String msg = event.getMessage(); - - synchronized (patterns) { - if (patterns.isEmpty()) { - addExtraction(msg); - return; - } - - for (Pattern p : patterns.values()) { - Matcher m = p.matcher(msg); - - if (m.find()) { - addGroupMatch(m); - break; - } - } - } - } - - /** - * Adds the first match group to {@link #extracted}. - * - * @param mat the matcher containing the groups - * - */ - private void addGroupMatch(final Matcher mat) { - int ngroups = mat.groupCount(); - - for (int x = 1; x <= ngroups; ++x) { - String txt = mat.group(x); - - if (txt != null) { - addExtraction(txt); - return; - } - } - - addExtraction(mat.group()); - } - - /** - * Adds an item to {@link #extracted}, in a thread-safe manner. - * It uses the queue's <i>offer()</i> method so that the queue - * can discard the item if it so chooses, without generating - * an exception. - * - * @param txt - * text to be added - */ - private void addExtraction(final String txt) { - synchronized (extracted) { - extracted.offer(txt); - } - } - - /** - * Gets the text that has been extracted. - * - * @return a copy of the text that has been extracted - */ - public List<String> getExtracted() { - synchronized (extracted) { - return new ArrayList<>(extracted); - } - } - - /** - * Clears the list of extracted text. - */ - public void clearExtractions() { - synchronized (extracted) { - extracted.clear(); - } - } - - /** - * Adds a pattern to be matched by this appender. - * - * @param regex - * regular expression (i.e., {@link Pattern}) to match - */ - public void setPattern(final String regex) { - synchronized (patterns) { - patterns.put(regex, Pattern.compile(regex)); - } - } + /** + * Extracted text is placed here. + */ + private final Queue<String> extracted; + + /** + * Regular expressions/Patterns to be used to extract text. Uses a + * LinkedHashMap so that order is preserved. + */ + private final LinkedHashMap<String, Pattern> patterns; + + /** + * Records every message that is logged. + */ + public ExtractAppender() { + this(new LinkedList<>()); + } + + /** + * Records portions of messages that match one of the regular + * expressions. + * + * @param regex + * regular expression (i.e., {@link Pattern}) to match + */ + public ExtractAppender(final String... regex) { + this(new LinkedList<>(), regex); + } + + /** + * Rather than allocating an internal queue to store matched messages, + * messages are recorded in the specified target queue using the + * {@link Queue#offer(Object)} method. Note: whenever the queue is used, + * it will be synchronized to prevent simultaneous accesses. + * + * @param target - queue into which the matched text should be placed + * @param regex regular expression (i.e., {@link Pattern}) to match + */ + public ExtractAppender(final Queue<String> target, + final String... regex) { + extracted = target; + patterns = new LinkedHashMap<>(regex.length); + + for (String re : regex) { + patterns.put(re, Pattern.compile(re)); + } + } + + /* + * (non-Javadoc) + * + * @see ch.qos.logback.core.AppenderBase#append(Object) + */ + @Override + protected void append(final ILoggingEvent event) { + + String msg = event.getMessage(); + + synchronized (patterns) { + if (patterns.isEmpty()) { + addExtraction(msg); + return; + } + + for (Pattern p : patterns.values()) { + Matcher matcher = p.matcher(msg); + + if (matcher.find()) { + addGroupMatch(matcher); + break; + } + } + } + } + + /** + * Adds the first match group to {@link #extracted}. + * + * @param mat the matcher containing the groups + * + */ + private void addGroupMatch(final Matcher mat) { + int ngroups = mat.groupCount(); + + for (int x = 1; x <= ngroups; ++x) { + String txt = mat.group(x); + + if (txt != null) { + addExtraction(txt); + return; + } + } + + addExtraction(mat.group()); + } + + /** + * Adds an item to {@link #extracted}, in a thread-safe manner. + * It uses the queue's <i>offer()</i> method so that the queue + * can discard the item if it so chooses, without generating + * an exception. + * + * @param txt + * text to be added + */ + private void addExtraction(final String txt) { + synchronized (extracted) { + extracted.offer(txt); + } + } + + /** + * Gets the text that has been extracted. + * + * @return a copy of the text that has been extracted + */ + public List<String> getExtracted() { + synchronized (extracted) { + return new ArrayList<>(extracted); + } + } + + /** + * Clears the list of extracted text. + */ + public void clearExtractions() { + synchronized (extracted) { + extracted.clear(); + } + } + + /** + * Adds a pattern to be matched by this appender. + * + * @param regex + * regular expression (i.e., {@link Pattern}) to match + */ + public void setPattern(final String regex) { + synchronized (patterns) { + patterns.put(regex, Pattern.compile(regex)); + } + } } diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTime.java b/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTime.java index 3dfed4bd..414c18bb 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTime.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTime.java @@ -36,7 +36,8 @@ public class TestTime extends CurrentTime { private AtomicLong tcur = new AtomicLong(System.currentTimeMillis()); /** - * + * Constructor. + * */ public TestTime() { super(); diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTimeMulti.java b/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTimeMulti.java index 7a8277c7..2782eb72 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTimeMulti.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/time/TestTimeMulti.java @@ -56,6 +56,7 @@ public class TestTimeMulti extends CurrentTime { private final Object locker = new Object(); /** + * Constructor. * * @param nthreads number of threads that will be sleeping simultaneously */ @@ -122,7 +123,7 @@ public class TestTimeMulti extends CurrentTime { */ private void wakeThreads() { Info info = queue.poll(); - if(info == null) { + if (info == null) { return; } @@ -157,6 +158,8 @@ public class TestTimeMulti extends CurrentTime { private final CountDownLatch latch = new CountDownLatch(1); /** + * Constructor. + * * @param awakenAtMs time, in milliseconds, at which the associated thread should * awaken */ @@ -179,20 +182,20 @@ public class TestTimeMulti extends CurrentTime { * Blocks the current thread until awakened (i.e., until its latch is * decremented). * - * @throws InterruptedException + * @throws InterruptedException can be interrupted */ public void await() throws InterruptedException { latch.await(); } @Override - public int compareTo(Info o) { - int diff = Long.compare(awakenAtMs, o.awakenAtMs); + public int compareTo(Info object) { + int diff = Long.compare(awakenAtMs, object.awakenAtMs); // this assumes that Object.toString() is unique for each Info object - if (diff == 0) - diff = this.toString().compareTo(o.toString()); - + if (diff == 0) { + diff = this.toString().compareTo(object.toString()); + } return diff; } diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeMultiTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeMultiTest.java index 206ab5f1..311e276d 100644 --- a/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeMultiTest.java +++ b/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeMultiTest.java @@ -22,6 +22,7 @@ package org.onap.policy.common.utils.time; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.Semaphore; @@ -29,7 +30,7 @@ import java.util.concurrent.TimeUnit; import org.junit.Test; /** - * + * Class to test TestTimeMulti. */ public class TestTimeMultiTest { @@ -46,7 +47,7 @@ public class TestTimeMultiTest { ttm = new TestTimeMulti(NTHREADS); done = new Semaphore(0); - long tbeg = ttm.getMillis(); + final long tbeg = ttm.getMillis(); // create threads List<MyThread> threads = new ArrayList<>(NTHREADS); diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeTest.java index 12086657..3e7897e9 100644 --- a/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeTest.java +++ b/utils-test/src/test/java/org/onap/policy/common/utils/time/TestTimeTest.java @@ -22,6 +22,7 @@ package org.onap.policy.common.utils.time; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; + import org.junit.Test; public class TestTimeTest { @@ -31,7 +32,7 @@ public class TestTimeTest { TestTime tm = new TestTime(); TestTime tm2 = new TestTime(); - long treal = System.currentTimeMillis(); + final long treal = System.currentTimeMillis(); long tcur = tm.getMillis(); assertEquals(tcur, tm.getDate().getTime()); diff --git a/utils-test/src/test/resources/logback-test.xml b/utils-test/src/test/resources/logback-test.xml index c99cd4a6..a5d46f8a 100644 --- a/utils-test/src/test/resources/logback-test.xml +++ b/utils-test/src/test/resources/logback-test.xml @@ -22,16 +22,16 @@ <configuration> - <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> - <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> - <Pattern> - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n - </Pattern> - </encoder> - </appender> - - <root level="debug"> - <appender-ref ref="STDOUT" /> - </root> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> + <Pattern> + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M\(%line\) - %msg%n + </Pattern> + </encoder> + </appender> + + <root level="debug"> + <appender-ref ref="STDOUT" /> + </root> </configuration> diff --git a/utils/src/main/java/org/onap/policy/common/utils/network/NetworkUtil.java b/utils/src/main/java/org/onap/policy/common/utils/network/NetworkUtil.java index c9afa19e..ae70ba44 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/network/NetworkUtil.java +++ b/utils/src/main/java/org/onap/policy/common/utils/network/NetworkUtil.java @@ -30,14 +30,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Network Utilities + * Network Utilities. */ public class NetworkUtil { public static final Logger logger = LoggerFactory.getLogger(NetworkUtil.class.getName()); /** - * IPv4 Wildcard IP address + * IPv4 Wildcard IP address. */ public static final String IPv4_WILDCARD_ADDRESS = "0.0.0.0"; @@ -73,7 +73,7 @@ public class NetworkUtil { } /** - * gets host name + * Gets host name. * * @return host name */ @@ -95,7 +95,7 @@ public class NetworkUtil { } /** - * gets host's IP + * Gets host's IP. * * @return host IP */ diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/PropertyConfiguration.java b/utils/src/main/java/org/onap/policy/common/utils/properties/PropertyConfiguration.java index e72ebaba..653fe484 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/PropertyConfiguration.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/PropertyConfiguration.java @@ -41,8 +41,8 @@ import org.onap.policy.common.utils.properties.exception.PropertyMissingExceptio * subclass. The values of the fields are set via <i>setXxx()</i> methods. As a result, if * a field is annotated and there is no corresponding <i>setXxx()</i> method, then an * exception will be thrown. - * <p> - * It is possible that an invalid <i>defaultValue</i> is specified via the + * + * <p>It is possible that an invalid <i>defaultValue</i> is specified via the * {@link Property} annotation. This could remain undetected until an optional property is * left out of the {@link Properties}. Consequently, this class will always validate a * {@link Property}'s default value, if the <i>defaultValue</i> is not empty or if @@ -120,23 +120,6 @@ public class PropertyConfiguration { } /** - * @param field field whose value is to be set - * @param prop property of interest - * @return the method to be used to set the field's value - * @throws PropertyAccessException if a "set" method cannot be identified - */ - private Method getSetter(Field field, Property prop) throws PropertyAccessException { - String nm = "set" + StringUtils.capitalize(field.getName()); - - try { - return this.getClass().getMethod(nm, field.getType()); - - } catch (NoSuchMethodException | SecurityException e) { - throw new PropertyAccessException(prop.name(), nm, e); - } - } - - /** * Sets a field's value from a particular property. * * @param setter method to be used to set the field's value @@ -167,6 +150,25 @@ public class PropertyConfiguration { } /** + * Get the setter. + * + * @param field field whose value is to be set + * @param prop property of interest + * @return the method to be used to set the field's value + * @throws PropertyAccessException if a "set" method cannot be identified + */ + private Method getSetter(Field field, Property prop) throws PropertyAccessException { + String nm = "set" + StringUtils.capitalize(field.getName()); + + try { + return this.getClass().getMethod(nm, field.getType()); + + } catch (NoSuchMethodException | SecurityException e) { + throw new PropertyAccessException(prop.name(), nm, e); + } + } + + /** * Gets a property value, coercing it to the field's type. * * @param field field whose value is to be set diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/SpecProperties.java b/utils/src/main/java/org/onap/policy/common/utils/properties/SpecProperties.java index 0f416c3a..17009a83 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/SpecProperties.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/SpecProperties.java @@ -39,6 +39,7 @@ public class SpecProperties extends Properties { private final String specPrefix; /** + * Constructor. * * @param prefix the property name prefix that appears before any specialization, may * be "" @@ -50,6 +51,7 @@ public class SpecProperties extends Properties { } /** + * Constructor. * * @param prefix the property name prefix that appears before any specialization, may * be "" diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAccessException.java b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAccessException.java index 568a8a79..b416cd0f 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAccessException.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAccessException.java @@ -28,6 +28,7 @@ public class PropertyAccessException extends PropertyException { private static final long serialVersionUID = 1L; /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -37,6 +38,7 @@ public class PropertyAccessException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -47,6 +49,7 @@ public class PropertyAccessException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -57,6 +60,7 @@ public class PropertyAccessException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationException.java b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationException.java index 2803ddfe..f068e158 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationException.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyAnnotationException.java @@ -27,6 +27,7 @@ public class PropertyAnnotationException extends PropertyException { private static final long serialVersionUID = 1L; /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -36,6 +37,7 @@ public class PropertyAnnotationException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -46,6 +48,7 @@ public class PropertyAnnotationException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -56,6 +59,7 @@ public class PropertyAnnotationException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyException.java b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyException.java index 8df4fb8e..44edd428 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyException.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyException.java @@ -37,6 +37,7 @@ public class PropertyException extends Exception { private final String fieldName; /** + * Constructor. * * @param propName name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -49,6 +50,7 @@ public class PropertyException extends Exception { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -62,6 +64,7 @@ public class PropertyException extends Exception { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -75,6 +78,7 @@ public class PropertyException extends Exception { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -89,6 +93,7 @@ public class PropertyException extends Exception { } /** + * Get the property name. * * @return name of the property for which the exception was thrown, or {@code null} if * no name was provided @@ -98,6 +103,7 @@ public class PropertyException extends Exception { } /** + * Get the field name. * * @return name of the field for which the exception was thrown, or {@code null} if no * field was provided @@ -107,6 +113,8 @@ public class PropertyException extends Exception { } /** + * Make the message. + * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} * @param message error message, never {@code null} @@ -117,6 +125,7 @@ public class PropertyException extends Exception { } /** + * Make the message. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidException.java b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidException.java index da1b6ae8..aad44318 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidException.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyInvalidException.java @@ -28,6 +28,7 @@ public class PropertyInvalidException extends PropertyException { private static final long serialVersionUID = 1L; /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -37,6 +38,7 @@ public class PropertyInvalidException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -47,6 +49,7 @@ public class PropertyInvalidException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} @@ -57,6 +60,7 @@ public class PropertyInvalidException extends PropertyException { } /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} diff --git a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyMissingException.java b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyMissingException.java index de542e6a..ccbe5f9a 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyMissingException.java +++ b/utils/src/main/java/org/onap/policy/common/utils/properties/exception/PropertyMissingException.java @@ -27,6 +27,7 @@ public class PropertyMissingException extends PropertyException { private static final long serialVersionUID = 1L; /** + * Constructor. * * @param propnm name of the property causing the exception, or {@code null} * @param fieldName name of the field causing the exception, or {@code null} diff --git a/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java b/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java index cab469e5..857b69b6 100644 --- a/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java +++ b/utils/src/main/java/org/onap/policy/common/utils/time/CurrentTime.java @@ -29,6 +29,7 @@ import java.util.Date; public class CurrentTime { /** + * Constructor. * */ public CurrentTime() { @@ -36,6 +37,8 @@ public class CurrentTime { } /** + * Get the millisecond time. + * * @return the current time, in milliseconds */ public long getMillis() { @@ -43,6 +46,8 @@ public class CurrentTime { } /** + * Get the current date. + * * @return the current Date */ public Date getDate() { @@ -53,7 +58,7 @@ public class CurrentTime { * Sleeps for a period of time. * * @param sleepMs amount of time to sleep, in milliseconds - * @throws InterruptedException + * @throws InterruptedException can be interrupted */ public void sleep(long sleepMs) throws InterruptedException { Thread.sleep(sleepMs); diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/PropertyConfigurationTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/PropertyConfigurationTest.java index 121ae384..dbe04aee 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/properties/PropertyConfigurationTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/properties/PropertyConfigurationTest.java @@ -22,6 +22,7 @@ package org.onap.policy.common.utils.properties; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; + import java.lang.reflect.Field; import java.util.Properties; import org.junit.Before; @@ -32,7 +33,7 @@ import org.onap.policy.common.utils.properties.exception.PropertyInvalidExceptio import org.onap.policy.common.utils.properties.exception.PropertyMissingException; /** - * + * Test class for PropertyConfiguration. */ public class PropertyConfigurationTest { @@ -100,7 +101,7 @@ public class PropertyConfigurationTest { public void setGrandparentValue(boolean grandparentValue) { this.grandparentValue = grandparentValue; } - }; + } /* * Implements the extra interface, too. @@ -114,7 +115,7 @@ public class PropertyConfigurationTest { public void setParentValue(long parentValue) { this.parentValue = parentValue; } - }; + } class Config extends ParentConfig { @@ -125,10 +126,10 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } - Config cfg = new Config(); + final Config cfg = new Config(); // try one set of values props.setProperty(THE_VALUE, STRING_VALUE); @@ -162,7 +163,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } Config cfg = new Config(); @@ -195,7 +196,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); Config cfg = new Config(props); @@ -219,7 +220,7 @@ public class PropertyConfigurationTest { public void setValue(Exception value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); new Config(props); @@ -235,7 +236,7 @@ public class PropertyConfigurationTest { public Config(Properties props) throws PropertyException { super(props); } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); new Config(props); @@ -262,7 +263,7 @@ public class PropertyConfigurationTest { protected Object getValue(Field field, Properties props, Property prop) throws PropertyException { return Boolean.TRUE; } - }; + } new Config(props); } @@ -279,7 +280,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { throw new IllegalArgumentException("expected exception"); } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); new Config(props); @@ -410,7 +411,7 @@ public class PropertyConfigurationTest { public void setPrimLongValue(long primLongValue) { this.primLongValue = primLongValue; } - }; + } props.setProperty("string", "a string"); props.setProperty("boolean.true", "true"); @@ -451,7 +452,7 @@ public class PropertyConfigurationTest { public void setValue(Exception value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); new Config(props); @@ -489,7 +490,7 @@ public class PropertyConfigurationTest { public void setProtectedString(String protectedString) { this.protectedString = protectedString; } - }; + } props.setProperty("public", "a public string"); props.setProperty("private", "a private string"); @@ -519,7 +520,7 @@ public class PropertyConfigurationTest { public Config(Properties props) throws PropertyException { super(props); } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); new Config(props); @@ -562,7 +563,7 @@ public class PropertyConfigurationTest { public void setValue(Boolean value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, "true"); new Config(props); @@ -583,7 +584,7 @@ public class PropertyConfigurationTest { public void setValue(Boolean value) { this.value = value; } - }; + } // property not defined Config cfg = new Config(props); @@ -615,7 +616,7 @@ public class PropertyConfigurationTest { public void setValue(Boolean value) { this.value = value; } - }; + } // property not defined Config cfg = new Config(props); @@ -647,7 +648,7 @@ public class PropertyConfigurationTest { public void setValue(Integer value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, "200"); Config cfg = new Config(props); @@ -670,7 +671,7 @@ public class PropertyConfigurationTest { public void setValue(Integer value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, "200"); new Config(props); @@ -691,7 +692,7 @@ public class PropertyConfigurationTest { public void setValue(Integer value) { this.value = value; } - }; + } // property not defined Config cfg = new Config(props); @@ -718,7 +719,7 @@ public class PropertyConfigurationTest { public void setValue(Long value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, "20000"); Config cfg = new Config(props); @@ -741,7 +742,7 @@ public class PropertyConfigurationTest { public void setValue(Long value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, "20000"); new Config(props); @@ -762,7 +763,7 @@ public class PropertyConfigurationTest { public void setValue(Long value) { this.value = value; } - }; + } // property not defined Config cfg = new Config(props); @@ -797,7 +798,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, STRING_VALUE); Config cfg = new Config(props); @@ -820,7 +821,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } props.setProperty(THE_VALUE, ""); Config cfg = new Config(props); @@ -843,7 +844,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } Config cfg = new Config(props); @@ -865,7 +866,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } Config cfg = new Config(props); @@ -887,7 +888,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } new Config(props); } @@ -907,7 +908,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } Config cfg = new Config(props); @@ -926,7 +927,7 @@ public class PropertyConfigurationTest { protected String getRawPropertyValue(Properties props, String propnm) { return STRING_VALUE; } - }; + } Config cfg = new Config(props); @@ -1005,7 +1006,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } Config cfg = new Config(props); @@ -1027,7 +1028,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } new Config(props); } @@ -1047,7 +1048,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } new Config(props); } @@ -1067,7 +1068,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } // missing property - should default to "" Config cfg = new Config(props); @@ -1099,7 +1100,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } new Config(props); } @@ -1119,7 +1120,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } Config cfg = new Config(props); @@ -1141,7 +1142,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } new Config(props); } @@ -1169,7 +1170,7 @@ public class PropertyConfigurationTest { public void setValue(String value) { this.value = value; } - }; + } /** * Config with a Boolean value having no qualifiers. @@ -1186,7 +1187,7 @@ public class PropertyConfigurationTest { public void setValue(Boolean value) { this.value = value; } - }; + } /** * Config with an int value having no qualifiers. @@ -1203,7 +1204,7 @@ public class PropertyConfigurationTest { public void setValue(int value) { this.value = value; } - }; + } /** * Config with a long value having no qualifiers. @@ -1220,7 +1221,7 @@ public class PropertyConfigurationTest { public void setValue(long value) { this.value = value; } - }; + } /** * A config whose field is "static". @@ -1238,7 +1239,7 @@ public class PropertyConfigurationTest { public static void setValue(String value) { StaticPropConfig.value = value; } - }; + } /** * A config whose method is "static". @@ -1256,7 +1257,7 @@ public class PropertyConfigurationTest { public static void setValue(String value) { } - }; + } /** * This is just used as a mix-in to ensure that the configuration ignores interfaces. diff --git a/utils/src/test/java/org/onap/policy/common/utils/properties/SpecPropertiesTest.java b/utils/src/test/java/org/onap/policy/common/utils/properties/SpecPropertiesTest.java index 01f096d1..0e4216c6 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/properties/SpecPropertiesTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/properties/SpecPropertiesTest.java @@ -22,6 +22,7 @@ package org.onap.policy.common.utils.properties; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; + import java.util.Properties; import org.junit.Before; import org.junit.Test; @@ -78,6 +79,9 @@ public class SpecPropertiesTest { private Properties supportingProps; private SpecProperties props; + /** + * Set up the tests. + */ @Before public void setUp() { supportingProps = new Properties(); 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 index 1e5fcfcd..c972e648 100644 --- 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 @@ -23,6 +23,7 @@ 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; /** 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 index 304df9df..57581d9e 100644 --- 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 @@ -23,12 +23,14 @@ package org.onap.policy.common.utils.properties.exception; import org.junit.Test; /** - * + * Test class for PropertyAccessException. */ 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 method for + * {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException + * (java.lang.String, java.lang.String)}. */ @Test public void testPropertyAccessExceptionStringField() { @@ -39,7 +41,9 @@ public class PropertyAccessExceptionTest extends BasicPropertyExceptionTester { } /** - * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String, java.lang.String)}. + * 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() { @@ -47,7 +51,9 @@ public class PropertyAccessExceptionTest extends BasicPropertyExceptionTester { } /** - * Test method for {@link org.onap.policy.common.utils.properties.exception.PropertyAccessException#PropertyAccessException(java.lang.String, java.lang.String, java.lang.Throwable)}. + * 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() { @@ -55,7 +61,9 @@ public class PropertyAccessExceptionTest extends BasicPropertyExceptionTester { } /** - * 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 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() { 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 index 2c033084..934ca026 100644 --- 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 @@ -23,13 +23,14 @@ package org.onap.policy.common.utils.properties.exception; import org.junit.Test; /** - * + * Test class for PropertyAnnotationException. */ public class PropertyAnnotationExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringField() { @@ -41,7 +42,8 @@ public class PropertyAnnotationExceptionTest extends BasicPropertyExceptionTeste /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringFieldString() { @@ -50,7 +52,8 @@ public class PropertyAnnotationExceptionTest extends BasicPropertyExceptionTeste /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.Throwable)}. */ @Test public void testPropertyExceptionStringFieldThrowable() { @@ -59,7 +62,8 @@ public class PropertyAnnotationExceptionTest extends BasicPropertyExceptionTeste /** * 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)}. + * {@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() { 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 index 18186ba2..a0d4645f 100644 --- 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 @@ -23,13 +23,14 @@ package org.onap.policy.common.utils.properties.exception; import org.junit.Test; /** - * + * Test class for PropertyException. */ public class PropertyExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringField() { @@ -41,7 +42,8 @@ public class PropertyExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringFieldString() { @@ -50,7 +52,8 @@ public class PropertyExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.Throwable)}. */ @Test public void testPropertyExceptionStringFieldThrowable() { @@ -59,7 +62,8 @@ public class PropertyExceptionTest extends BasicPropertyExceptionTester { /** * 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)}. + * {@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() { 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 index f83b7ed3..ce7be108 100644 --- 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 @@ -23,13 +23,14 @@ package org.onap.policy.common.utils.properties.exception; import org.junit.Test; /** - * + * Test class for PropertyInvalidException. */ public class PropertyInvalidExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringField() { @@ -41,7 +42,8 @@ public class PropertyInvalidExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringFieldString() { @@ -50,7 +52,8 @@ public class PropertyInvalidExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String, java.lang.Throwable)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String, java.lang.Throwable)}. */ @Test public void testPropertyExceptionStringFieldThrowable() { @@ -59,7 +62,8 @@ public class PropertyInvalidExceptionTest extends BasicPropertyExceptionTester { /** * 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)}. + * {@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() { 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 index f99ddd93..320a0c23 100644 --- 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 @@ -23,13 +23,14 @@ package org.onap.policy.common.utils.properties.exception; import org.junit.Test; /** - * + * Test class for PropertyMissingException. */ public class PropertyMissingExceptionTest extends BasicPropertyExceptionTester { /** * Test method for - * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException(java.lang.String, java.lang.String)}. + * {@link org.onap.policy.common.utils.properties.exception.PropertyException#PropertyException + * (java.lang.String, java.lang.String)}. */ @Test public void testPropertyExceptionStringField() { diff --git a/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java b/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java index 694a3d21..499372ab 100644 --- a/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java +++ b/utils/src/test/java/org/onap/policy/common/utils/time/CurrentTimeTest.java @@ -21,6 +21,7 @@ package org.onap.policy.common.utils.time; import static org.junit.Assert.assertTrue; + import org.junit.Test; public class CurrentTimeTest { |