diff options
author | Jim Hahn <jrh3@att.com> | 2018-10-03 12:09:28 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2018-10-03 13:23:56 -0400 |
commit | ee70adfa3010dbde69e2fffda8527d81a6429e96 (patch) | |
tree | 8a01df88de9a07e560aab800bcb4496bbe259854 | |
parent | d94a034ad6a871e024d84d42d97d40b83af0770d (diff) |
Support Throwables in expectException()
Also fixed some bugs in the junit tests.
Renamed expectException() to assertThrows().
Added test cases.
Change-Id: I13dff0007e35c2d2521a4ca40bb65e6820416ed1
Issue-ID: POLICY-1148
Signed-off-by: Jim Hahn <jrh3@att.com>
-rw-r--r-- | utils-test/src/main/java/org/onap/policy/common/utils/test/PolicyAssert.java | 19 | ||||
-rw-r--r-- | utils-test/src/test/java/org/onap/policy/common/utils/test/PolicyAssertTest.java | 38 |
2 files changed, 39 insertions, 18 deletions
diff --git a/utils-test/src/main/java/org/onap/policy/common/utils/test/PolicyAssert.java b/utils-test/src/main/java/org/onap/policy/common/utils/test/PolicyAssert.java index fdd098f6..43bb7792 100644 --- a/utils-test/src/main/java/org/onap/policy/common/utils/test/PolicyAssert.java +++ b/utils-test/src/main/java/org/onap/policy/common/utils/test/PolicyAssert.java @@ -34,21 +34,24 @@ public class PolicyAssert { * * @param clazz class of exception that is expected * @param func function - * @return object + * @return the exception that was thrown + * @throws AssertionError if the function does not throw an exception or throws the + * wrong type of exception */ - public static <T> T assertException(Class<T> clazz, RunnableWithEx func) { + public static <T extends Throwable> T assertThrows(Class<T> clazz, RunnableWithEx func) { try { func.run(); - throw new AssertionError("missing exception"); - } catch (Exception e) { + } catch (Throwable thrown) { try { - return clazz.cast(e); + return clazz.cast(thrown); - } catch (ClassCastException e2) { - throw new AssertionError("incorrect exception type", e2); + } catch (ClassCastException thrown2) { + throw new AssertionError("incorrect exception type", thrown2); } } + + throw new AssertionError("missing exception"); } /** @@ -56,6 +59,6 @@ public class PolicyAssert { */ @FunctionalInterface public static interface RunnableWithEx { - public void run() throws Exception; + public void run() throws Throwable; } } diff --git a/utils-test/src/test/java/org/onap/policy/common/utils/test/PolicyAssertTest.java b/utils-test/src/test/java/org/onap/policy/common/utils/test/PolicyAssertTest.java index 2831905c..f41d7b3a 100644 --- a/utils-test/src/test/java/org/onap/policy/common/utils/test/PolicyAssertTest.java +++ b/utils-test/src/test/java/org/onap/policy/common/utils/test/PolicyAssertTest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,7 +22,7 @@ package org.onap.policy.common.utils.test; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import static org.onap.policy.common.utils.test.PolicyAssert.assertException; +import static org.onap.policy.common.utils.test.PolicyAssert.assertThrows; import org.junit.Test; @@ -32,36 +32,54 @@ public class PolicyAssertTest { @Test public void test_ExpectedEx() { - assertException(IllegalArgumentException.class, () -> { + // exact type + assertThrows(IllegalArgumentException.class, () -> { throw new IllegalArgumentException(EXPECTED); }); + + // cast to superclass is supported + assertThrows(RuntimeException.class, () -> { + throw new IllegalArgumentException(EXPECTED); + }); + + // supports errors + assertThrows(LinkageError.class, () -> { + throw new LinkageError(EXPECTED); + }); + + // supports any throwable + assertThrows(Throwable.class, () -> { + throw new Throwable(EXPECTED); + }); } @Test public void test_IncorrectEx() { try { - assertException(IllegalStateException.class, () -> { + assertThrows(IllegalStateException.class, () -> { throw new IllegalArgumentException(EXPECTED); }); - fail("incorrect exception type"); - } catch (AssertionError err) { assertTrue(err.getMessage().contains("incorrect exception type")); + return; } + + fail("test failed for incorrect exception type"); } @Test public void test_MissingEx() { try { - assertException(IllegalArgumentException.class, () -> { + assertThrows(IllegalArgumentException.class, () -> { }); - fail("missing exception"); - } catch (AssertionError err) { assertTrue(err.getMessage().contains("missing exception")); + return; } + + fail("test failed for missing exception"); } } |