This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e3ecd45e Unit test modernization.
2e3ecd45e is described below

commit 2e3ecd45e98a18046291c754c8a87e3f7d4f53db
Author: James Bognar <[email protected]>
AuthorDate: Tue Aug 12 13:46:15 2025 -0400

    Unit test modernization.
---
 .../java/org/apache/juneau/AssertionPredicate.java |   6 +
 .../java/org/apache/juneau/BeanContextTest.java    |   3 +-
 .../java/org/apache/juneau/DataConversionTest.java |   9 +-
 .../java/org/apache/juneau/ParserReaderTest.java   |   3 +-
 .../java/org/apache/juneau/PojoExamplesTest.java   |  11 +-
 .../java/org/apache/juneau/SimpleTestBase.java     |  38 ++++
 .../collections/ControlledArrayList_Test.java      |  35 ++--
 .../org/apache/juneau/config/ConfigMapTest.java    |  13 +-
 .../java/org/apache/juneau/config/ConfigTest.java  |   9 +-
 .../java/org/apache/juneau/cp/BeanStore_Test.java  |  11 +-
 .../apache/juneau/dto/swagger/HeaderInfo_Test.java |   5 +-
 .../java/org/apache/juneau/html/Common_Test.java   |   7 +-
 .../juneau/http/header/HeaderBeanMeta_Test.java    |   7 +-
 .../apache/juneau/http/part/PartBeanMeta_Test.java |   9 +-
 .../org/apache/juneau/http/remote/Remote_Test.java |   3 +-
 .../juneau/httppart/OpenApiPartParser_Test.java    |   7 +-
 .../org/apache/juneau/json/CommonParserTest.java   |   3 +-
 .../java/org/apache/juneau/json/CommonTest.java    |   5 +-
 .../org/apache/juneau/json/JsonParserTest.java     |  41 ++--
 .../apache/juneau/msgpack/MsgPackParserTest.java   |   3 +-
 .../objecttools/ObjectIntrospector_Test.java       |   3 +-
 .../apache/juneau/objecttools/ObjectRest_Test.java | 217 ++++++++++-----------
 .../juneau/objecttools/ObjectSearcher_Test.java    |   7 +-
 .../org/apache/juneau/reflect/ClassInfoTest.java   |  11 +-
 .../juneau/rest/client/RestCallException_Test.java |   2 +-
 .../rest/client/RestClient_BasicCalls_Test.java    |   3 +-
 .../client/RestClient_CallbackStrings_Test.java    |   3 +-
 .../client/RestClient_Config_RestClient_Test.java  |   5 +-
 .../rest/client/RestClient_Response_Body_Test.java |   4 +-
 .../client/RestClient_Response_Headers_Test.java   |   5 +-
 .../rest/client/RestClient_Response_Test.java      |   3 +-
 .../apache/juneau/rest/client/RestClient_Test.java |   7 +-
 .../rest/test/client/ThirdPartyProxyTest.java      |   6 +-
 .../apache/juneau/uon/CommonParser_UonTest.java    |   3 +-
 .../java/org/apache/juneau/uon/Common_UonTest.java |   5 +-
 .../java/org/apache/juneau/uon/UonParserTest.java  |   5 +-
 .../urlencoding/CommonParser_UrlEncodingTest.java  |   3 +-
 .../juneau/urlencoding/Common_UrlEncodingTest.java |   5 +-
 .../juneau/urlencoding/UrlEncodingParserTest.java  |   5 +-
 .../org/apache/juneau/utils/ArrayUtilsTest.java    |   7 +-
 .../org/apache/juneau/utils/FilteredMapTest.java   |  12 +-
 .../java/org/apache/juneau/utils/MultiSetTest.java |  17 +-
 .../org/apache/juneau/utils/SimpleMapTest.java     |  11 +-
 .../juneau/utils/StringBuilderWriterTest.java      |  11 +-
 .../org/apache/juneau/xml/CommonParserTest.java    |   3 +-
 .../java/org/apache/juneau/xml/CommonTest.java     |   9 +-
 46 files changed, 305 insertions(+), 295 deletions(-)

diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/AssertionPredicate.java 
b/juneau-utest/src/test/java/org/apache/juneau/AssertionPredicate.java
new file mode 100644
index 000000000..6ad6bab71
--- /dev/null
+++ b/juneau-utest/src/test/java/org/apache/juneau/AssertionPredicate.java
@@ -0,0 +1,6 @@
+package org.apache.juneau;
+
+public interface AssertionPredicate<T> {
+
+       public void test(T value);
+}
diff --git a/juneau-utest/src/test/java/org/apache/juneau/BeanContextTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/BeanContextTest.java
index cbe7b5f9e..dea84a165 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/BeanContextTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/BeanContextTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.testutils.pojos.*;
@@ -53,7 +52,7 @@ class BeanContextTest extends SimpleTestBase {
 
        @Test void b01_ignoreUnknownEnumValues() {
                JsonParser p1 = JsonParser.DEFAULT;
-               assertThrown(() -> p1.parse("'UNKNOWN'", 
TestEnum.class)).asMessage().isContains("Could not resolve enum value 'UNKNOWN' 
on class 'org.apache.juneau.testutils.pojos.TestEnum'");
+               assertThrowsWithMessage(Exception.class, "Could not resolve 
enum value 'UNKNOWN' on class 'org.apache.juneau.testutils.pojos.TestEnum'", () 
-> p1.parse("'UNKNOWN'", TestEnum.class));
 
                JsonParser p2 = 
JsonParser.create().ignoreUnknownEnumValues().build();
                assertNull(p2.parse("'UNKNOWN'", TestEnum.class));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/DataConversionTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/DataConversionTest.java
index 978f3faa0..d4fca251e 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/DataConversionTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/DataConversionTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -85,15 +84,15 @@ class DataConversionTest extends SimpleTestBase {
                m.put("x", TestEnum.ENUM2);
                assertEquals("ENUM2", m.getString("x"));
                assertFalse(m.getBoolean("x"));
-               
assertThrown(()->m.getMap("x")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->m.getMap("x"));
 
                // *** Not a bean ***
                m.put("x", new NotABean("foo"));
                assertEquals("foo", m.getString("x"));
-               
assertThrown(()->m.getInt("x")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->m.getLong("x")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->m.getInt("x"));
+               assertThrows(InvalidDataConversionException.class, 
()->m.getLong("x"));
                assertFalse(m.getBoolean("x"));
-               
assertThrown(()->m.getMap("x")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->m.getMap("x"));
        }
 
        public enum TestEnum {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/ParserReaderTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/ParserReaderTest.java
index d1ca9ee0c..89138a360 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/ParserReaderTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/ParserReaderTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.io.*;
 
@@ -50,7 +49,7 @@ class ParserReaderTest extends SimpleTestBase {
                ParserReader pr2 = createParserReader(t);
                pr2.read();
                pr2.unread();
-               assertThrown(pr2::unread).isType(IOException.class);
+               assertThrows(IOException.class, pr2::unread);
        }
 
        
//====================================================================================================
diff --git a/juneau-utest/src/test/java/org/apache/juneau/PojoExamplesTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/PojoExamplesTest.java
index 287e2b89b..6410bece2 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/PojoExamplesTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/PojoExamplesTest.java
@@ -12,7 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau;
 
-import static org.apache.juneau.assertions.Assertions.*;
+import static org.apache.juneau.internal.CollectionUtils.*;
+
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.json.*;
 import org.junit.jupiter.api.*;
@@ -321,10 +322,10 @@ class PojoExamplesTest extends SimpleTestBase {
        @Test
        public void testInvalidUsesOfExample() {
                BeanSession bs = BeanContext.DEFAULT_SESSION;
-               
assertThrown(()->bs.getClassMeta(F1.class)).asMessage().isContains("invalid 
method 'example(String)'");
-               
assertThrown(()->bs.getClassMeta(F2.class)).asMessage().isContains("invalid 
method 'example()'");
-               
assertThrown(()->bs.getClassMeta(F3.class)).asMessage().isContains("invalid 
field","$F3.F3");
-               
assertThrown(()->bs.getClassMeta(F4.class)).asMessage().isContains("invalid 
field ","$F4.f4");
+               assertThrowsWithMessage(Exception.class, "invalid method 
'example(String)'", ()->bs.getClassMeta(F1.class));
+               assertThrowsWithMessage(Exception.class, "invalid method 
'example()'", ()->bs.getClassMeta(F2.class));
+               assertThrowsWithMessage(Exception.class, list("invalid 
field","$F3.F3"), ()->bs.getClassMeta(F3.class));
+               assertThrowsWithMessage(Exception.class, list("invalid field 
","$F4.f4"), ()->bs.getClassMeta(F4.class));
        }
 
        public static class F1 {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java 
b/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java
index 36e21754c..38102ed6f 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java
@@ -23,6 +23,7 @@ import org.apache.juneau.common.internal.*;
 import org.apache.juneau.marshaller.*;
 import org.apache.juneau.serializer.*;
 import org.junit.jupiter.api.*;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.MethodOrderer.*;
 
 /**
@@ -42,6 +43,36 @@ public abstract class SimpleTestBase {
                assertEquals(expected, 
Utils.readable(value).replaceAll("\\r?\\n", "|"));
        }
 
+       protected static <T> void assertTests(T value, 
AssertionPredicate<T>...tests) {
+               Stream.of(tests).forEach(x -> x.test(value));
+       }
+
+       protected static <T extends Throwable> void 
assertThrowsTests(org.junit.jupiter.api.function.Executable executable, 
AssertionPredicate<T>...tests) {
+               try {
+                       executable.execute();
+                       fail("Exception expected");
+               } catch (Throwable t) {
+                       Stream.of(tests).forEach(x -> x.test((T)t));
+               }
+       }
+
+       public static <T extends Throwable> T thrown(Class<T> throwableType, 
org.junit.jupiter.api.function.Executable executable) {
+               return (T)assertThrows(Throwable.class, executable);
+       }
+
+       protected static <T extends Throwable> AssertionPredicate<T> 
messagesContains(String...values) {
+               return x -> {
+                       var messages = AssertionHelpers.getMessages(x);
+                       for (var v : values) {
+                               assertTrue(messages.contains(v), ss("Throwable 
did not contain expected substring ''{0}''.  Messages={1}", v, messages));
+                       }
+               };
+       }
+
+       protected static <T> AssertionPredicate<T> isType(Class<?> type) {
+               return x -> assertType(type, type);
+       }
+
        /**
         * Asserts the JSON5 representation of the specified object.
         */
@@ -127,6 +158,13 @@ public abstract class SimpleTestBase {
                return AssertionHelpers.assertThrowsWithMessage(expectedType, 
expectedSubstring, executable);
        }
 
+       protected static <T extends Throwable> T 
assertThrowsWithMessage(Class<T> expectedType, List<String> expectedSubstrings, 
org.junit.jupiter.api.function.Executable executable) {
+               T exception = Assertions.assertThrows(expectedType, executable);
+               var messages = AssertionHelpers.getMessages(exception);
+               expectedSubstrings.stream().forEach(x -> 
assertTrue(messages.contains(x), ss("Expected message to contain: 
{0}.\nActual:\n{1}", x, messages)));
+               return exception;
+       }
+
        protected static <T extends Throwable> T assertThrowable(Class<T> 
expectedType, String expectedSubstring, T t) {
                var messages = AssertionHelpers.getMessages(t);
                assertTrue(messages.contains(expectedSubstring), ss("Expected 
message to contain: {0}.\nActual:\n{1}", expectedSubstring, messages));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
index 0c0471598..618809b86 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.collections;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import static org.junit.runners.MethodSorters.*;
 
@@ -50,62 +49,62 @@ public class ControlledArrayList_Test {
                ControlledArrayList<Integer> x2 = new 
ControlledArrayList<>(true, Arrays.asList(1));
 
                x1.set(0, 2);
-               assertThrown(() -> x2.set(0, 
2)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.set(0, 2));
                x2.overrideSet(0, 2);
                assertEquals(x2, x1);
 
                x1.add(0, 2);
-               assertThrown(() -> x2.add(0, 
2)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.add(0, 2));
                x2.overrideAdd(0, 2);
                assertEquals(x2, x1);
 
                x1.remove(0);
-               assertThrown(() -> 
x2.remove(0)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.remove(0));
                x2.overrideRemove(0);
                assertEquals(x2, x1);
 
                x1.addAll(0, Arrays.asList(3));
-               assertThrown(() -> x2.addAll(0, 
Arrays.asList(3))).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.addAll(0, Arrays.asList(3)));
                x2.overrideAddAll(0, Arrays.asList(3));
                assertEquals(x2, x1);
 
                x1.replaceAll(x -> x);
-               assertThrown(() -> x2.replaceAll(x -> 
x)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.replaceAll(x -> x));
                x2.overrideReplaceAll(x -> x);
                assertEquals(x2, x1);
 
                x1.sort(null);
-               assertThrown(() -> 
x2.sort(null)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.sort(null));
                x2.overrideSort(null);
                assertEquals(x2, x1);
 
                x1.add(1);
-               assertThrown(() -> 
x2.add(1)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.add(1));
                x2.overrideAdd(1);
                assertEquals(x2, x1);
 
                x1.remove((Integer)1);
-               assertThrown(() -> 
x2.remove((Integer)1)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.remove((Integer)1));
                x2.overrideRemove((Integer)1);
                assertEquals(x2, x1);
 
                x1.addAll(Arrays.asList(3));
-               assertThrown(() -> 
x2.addAll(Arrays.asList(3))).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.addAll(Arrays.asList(3)));
                x2.overrideAddAll(Arrays.asList(3));
                assertEquals(x2, x1);
 
                x1.removeAll(Arrays.asList(3));
-               assertThrown(() -> 
x2.removeAll(Arrays.asList(3))).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.removeAll(Arrays.asList(3)));
                x2.overrideRemoveAll(Arrays.asList(3));
                assertEquals(x2, x1);
 
                x1.retainAll(Arrays.asList(2));
-               assertThrown(() -> 
x2.retainAll(Arrays.asList(2))).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.retainAll(Arrays.asList(2)));
                x2.overrideRetainAll(Arrays.asList(2));
                assertEquals(x2, x1);
 
                x1.clear();
-               
assertThrown(x2::clear).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, x2::clear);
                x2.overrideClear();
                assertEquals(x2, x1);
 
@@ -113,7 +112,7 @@ public class ControlledArrayList_Test {
                x2.overrideAdd(1);
 
                x1.removeIf(x -> x == 1);
-               assertThrown(() -> x2.removeIf(x -> x == 
1)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
x2.removeIf(x -> x == 1));
                x2.overrideRemoveIf(x -> x == 1);
                assertEquals(x2, x1);
 
@@ -141,7 +140,7 @@ public class ControlledArrayList_Test {
                assertEquals(1, i2.next().intValue());
 
                i1.remove();
-               
assertThrown(i2::remove).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, i2::remove);
 
                i1.forEachRemaining(x -> {});
                i2.forEachRemaining(x -> {});
@@ -174,16 +173,16 @@ public class ControlledArrayList_Test {
                i2a.previous();
 
                i1a.set(1);
-               assertThrown(() -> 
i2a.set(1)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
i2a.set(1));
 
                i1a.add(1);
-               assertThrown(() -> 
i2a.add(1)).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, () -> 
i2a.add(1));
 
                i1a.next();
                i2a.next();
 
                i1a.remove();
-               
assertThrown(i2a::remove).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, i2a::remove);
 
                i1a.forEachRemaining(x -> {});
                i2a.forEachRemaining(x -> {});
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapTest.java
index 0b8b2d600..dc618e4e2 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.config;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.common.internal.StringUtils.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 import static org.junit.Assert.*;
@@ -259,7 +258,7 @@ class ConfigMapTest extends SimpleTestBase {
 
                for (String t : test) {
                        ConfigStore s = initStore("A.cfg", t);
-                       
assertThrown(()->s.getMap("A.cfg")).asMessage().isContains("Invalid section 
name");
+                       assertThrowsWithMessage(Exception.class, "Invalid 
section name", ()->s.getMap("A.cfg"));
                }
        }
 
@@ -606,7 +605,7 @@ class ConfigMapTest extends SimpleTestBase {
                };
 
                for (String t : test) {
-                       assertThrown(()->cm.setSection(t, 
null)).asMessage().isContains("Invalid section name");
+                       assertThrowsWithMessage(Exception.class, "Invalid 
section name", ()->cm.setSection(t, null));
                }
        }
 
@@ -823,7 +822,7 @@ class ConfigMapTest extends SimpleTestBase {
                };
 
                for (String t : test) {
-                       assertThrown(()->cm.setEntry(t, "k1", "foo", null, 
null, null)).asMessage().isContains("Invalid section name:");
+                       assertThrowsWithMessage(Exception.class, "Invalid 
section name:", ()->cm.setEntry(t, "k1", "foo", null, null, null));
                }
        }
 
@@ -843,7 +842,7 @@ class ConfigMapTest extends SimpleTestBase {
                };
 
                for (String t : test) {
-                       assertThrown(()->cm.setEntry("S1", t, "foo", null, 
null, null)).asMessage().isContains("Invalid key name");
+                       assertThrowsWithMessage(Exception.class, "Invalid key 
name", ()->cm.setEntry("S1", t, "foo", null, null, null));
                }
        }
 
@@ -998,7 +997,7 @@ class ConfigMapTest extends SimpleTestBase {
                };
 
                for (String t : test) {
-                       assertThrown(()->cm.setEntry(t, "k1", "foo", null, 
null, null)).asMessage().isContains("Invalid section name");
+                       assertThrowsWithMessage(Exception.class, "Invalid 
section name", ()->cm.setEntry(t, "k1", "foo", null, null, null));
                }
        }
 
@@ -1018,7 +1017,7 @@ class ConfigMapTest extends SimpleTestBase {
                };
 
                for (String t : test) {
-                       assertThrown(()->cm.setEntry("S1", t, "foo", null, 
null, null)).asMessage().isContains("Invalid key name");
+                       assertThrowsWithMessage(Exception.class, "Invalid key 
name", ()->cm.setEntry("S1", t, "foo", null, null, null));
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigTest.java
index b07170e73..a6e8389d3 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.config;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -391,10 +390,10 @@ class ConfigTest extends SimpleTestBase {
        @Test void getLong2BadValues() {
                Config c = init("a1=foo", "a2=2.3", "a3=[1]", "a4=false");
 
-               
assertThrown(()->c.get("a1").asLong().orElse(-1L)).isType(NumberFormatException.class);
-               
assertThrown(()->c.get("a2").asLong().orElse(-1L)).isType(NumberFormatException.class);
-               
assertThrown(()->c.get("a3").asLong().orElse(-1L)).isType(NumberFormatException.class);
-               
assertThrown(()->c.get("a4").asLong().orElse(-1L)).isType(NumberFormatException.class);
+               assertThrows(NumberFormatException.class, 
()->c.get("a1").asLong().orElse(-1L));
+               assertThrows(NumberFormatException.class, 
()->c.get("a2").asLong().orElse(-1L));
+               assertThrows(NumberFormatException.class, 
()->c.get("a3").asLong().orElse(-1L));
+               assertThrows(NumberFormatException.class, 
()->c.get("a4").asLong().orElse(-1L));
        }
 
        
//====================================================================================================
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
index 3e8f85d51..4f456054d 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
@@ -14,7 +14,6 @@ package org.apache.juneau.cp;
 
 import static java.lang.annotation.ElementType.*;
 import static java.lang.annotation.RetentionPolicy.*;
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ObjectUtils.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 import static org.junit.Assert.*;
@@ -527,9 +526,9 @@ class BeanStore_Test extends SimpleTestBase {
                assertNull(b1c.createMethodFinder(C.class, 
C1.class).find("createA1").run());
                
assertNotNull(b2c.createMethodFinder(C.class).find("createA1").run());
                
assertNull(b3c.createMethodFinder(C.class).find("createA1").run());
-               assertThrown(()->b1c.createMethodFinder(C.class, 
x).find("createA7").run()).asMessage().isContains("foo");
+               assertThrowsWithMessage(Exception.class, "foo", 
()->b1c.createMethodFinder(C.class, x).find("createA7").run());
                assertNull(b1c.createMethodFinder(C.class, 
C1.class).find("createA7").run());
-               
assertThrown(()->b2c.createMethodFinder(C.class).find("createA7").run()).asMessage().isContains("foo");
+               assertThrowsWithMessage(Exception.class, "foo", 
()->b2c.createMethodFinder(C.class).find("createA7").run());
                
assertNull(b3c.createMethodFinder(C.class).find("createA7").run());
        }
 
@@ -566,9 +565,9 @@ class BeanStore_Test extends SimpleTestBase {
                assertNotNull(b1c.createMethodFinder(C.class, 
C2.class).find("createB1").run());
                
assertNotNull(b2c.createMethodFinder(C.class).find("createB1").run());
                
assertNull(b3c.createMethodFinder(C.class).find("createB1").run());
-               assertThrown(()->b1c.createMethodFinder(C.class, 
x).find("createB7").run()).asMessage().isContains("foo");
-               assertThrown(()->b1c.createMethodFinder(C.class, 
C2.class).find("createB7").run()).asMessage().isContains("foo");
-               
assertThrown(()->b2c.createMethodFinder(C.class).find("createB7").run()).asMessage().isContains("foo");
+               assertThrowsWithMessage(Exception.class, "foo", 
()->b1c.createMethodFinder(C.class, x).find("createB7").run());
+               assertThrowsWithMessage(Exception.class, "foo", 
()->b1c.createMethodFinder(C.class, C2.class).find("createB7").run());
+               assertThrowsWithMessage(Exception.class, "foo", 
()->b2c.createMethodFinder(C.class).find("createB7").run());
                
assertNull(b3c.createMethodFinder(C.class).find("createB7").run());
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
index ec17542d3..74eb6f921 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/dto/swagger/HeaderInfo_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.dto.swagger;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.bean.swagger.SwaggerBuilder.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 import static org.junit.jupiter.api.Assertions.*;
@@ -248,9 +247,9 @@ class HeaderInfo_Test extends SimpleTestBase {
        @Test void c01_strict() {
                HeaderInfo t = new HeaderInfo().strict();
                t.setCollectionFormat("csv");
-               
assertThrown(()->t.setCollectionFormat("foo")).asMessage().isContains("Invalid");
+               assertThrowsWithMessage(Exception.class, "Invalid", 
()->t.setCollectionFormat("foo"));
                t.setType("string");
-               
assertThrown(()->t.setType("foo")).asMessage().isContains("Invalid");
+               assertThrowsWithMessage(Exception.class, "Invalid", 
()->t.setType("foo"));
        }
 
        @Test void c02_resolveRefs() {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/html/Common_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/html/Common_Test.java
index 1ffbec361..689a6885f 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/html/Common_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/html/Common_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.html;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.junit.Assert.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
@@ -23,6 +22,7 @@ import java.util.*;
 import org.apache.juneau.*;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.collections.*;
+import org.apache.juneau.common.internal.*;
 import org.apache.juneau.serializer.*;
 import org.junit.jupiter.api.*;
 
@@ -349,11 +349,12 @@ class Common_Test extends SimpleTestBase {
                r3.r1 = r1;
 
                // No recursion detection
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("It's 
recommended you use the BeanTraverseContext.BEANTRAVERSE_detectRecursions 
setting to help locate the loop.");
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
 
                // Recursion detection, no ignore
                s.detectRecursions();
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("[0] 
<noname>:org.apache.juneau.html.Common_Test$R1", "->[1] 
r2:org.apache.juneau.html.Common_Test$R2", "->[2] 
r3:org.apache.juneau.html.Common_Test$R3", "->[3] 
r1:org.apache.juneau.html.Common_Test$R1");
+               assertThrowsWithMessage(Exception.class, Utils.list("[0] 
<noname>:org.apache.juneau.html.Common_Test$R1", "->[1] 
r2:org.apache.juneau.html.Common_Test$R2", "->[2] 
r3:org.apache.juneau.html.Common_Test$R3", "->[3] 
r1:org.apache.juneau.html.Common_Test$R1"), ()->s.build().serialize(r1));
 
                s.ignoreRecursions();
                assertEquals(
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/header/HeaderBeanMeta_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/http/header/HeaderBeanMeta_Test.java
index 791065d37..383f23bd1 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/header/HeaderBeanMeta_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/header/HeaderBeanMeta_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.http.header;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.common.internal.StringUtils.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.*;
@@ -72,12 +71,12 @@ class HeaderBeanMeta_Test extends SimpleTestBase {
                HeaderBeanMeta<A1> a1 = HeaderBeanMeta.of(A1.class);
                assertSame(a1, HeaderBeanMeta.of(A1.class));
                assertJson(a1.construct("X", "foo"), "{name:'X',value:'foo'}");
-               
assertThrown(()->a1.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A1 requires a name as the first argument.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A1 requires a name as the first argument.", ()->a1.construct("foo"));
                assertNull(a1.getSchema().getName());
 
                HeaderBeanMeta<A2> a2 = HeaderBeanMeta.of(A2.class);
                assertJson(a2.construct("X", "foo"), "{name:'X',value:'foo'}");
-               
assertThrown(()->a2.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A2 requires a name as the first argument.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A2 requires a name as the first argument.", ()->a2.construct("foo"));
                assertNull(a2.getSchema().getName());
 
                HeaderBeanMeta<A3> a3 = HeaderBeanMeta.of(A3.class);
@@ -91,7 +90,7 @@ class HeaderBeanMeta_Test extends SimpleTestBase {
                assertEquals("A4", a4.getSchema().getName());
 
                HeaderBeanMeta<A5> a5 = HeaderBeanMeta.of(A5.class);
-               
assertThrown(()->a5.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A5 could not be found.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A5 could not be found.", ()->a5.construct("foo"));
                assertEquals("A5", a5.getSchema().getName());
 
                HeaderBeanMeta<A6> a6 = HeaderBeanMeta.of(A6.class);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/part/PartBeanMeta_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/part/PartBeanMeta_Test.java
index f379c9446..7fa3a926a 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/http/part/PartBeanMeta_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/http/part/PartBeanMeta_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.http.part;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.common.internal.StringUtils.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.*;
@@ -78,12 +77,12 @@ class PartBeanMeta_Test extends SimpleTestBase {
                PartBeanMeta<A1> a1 = PartBeanMeta.of(A1.class);
                assertSame(a1, PartBeanMeta.of(A1.class));
                assertJson(a1.construct("X", "foo"), "{name:'X',value:'foo'}");
-               
assertThrown(()->a1.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A1 requires a name as the first argument.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A1 requires a name as the first argument.", ()->a1.construct("foo"));
                assertNull(a1.getSchema().getName());
 
                PartBeanMeta<A2> a2 = PartBeanMeta.of(A2.class);
                assertJson(a2.construct("X", "foo"), "{name:'X',value:'foo'}");
-               
assertThrown(()->a2.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A2 requires a name as the first argument.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A2 requires a name as the first argument.", ()->a2.construct("foo"));
                assertNull(a2.getSchema().getName());
 
                PartBeanMeta<A3> a3 = PartBeanMeta.of(A3.class);
@@ -97,14 +96,14 @@ class PartBeanMeta_Test extends SimpleTestBase {
                assertEquals("A4", a4.getSchema().getName());
 
                PartBeanMeta<A5> a5 = PartBeanMeta.of(A5.class);
-               
assertThrown(()->a5.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A5 could not be found.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A5 could not be found.", ()->a5.construct("foo"));
                assertEquals("A5", a5.getSchema().getName());
 
                PartBeanMeta<A6> a6 = PartBeanMeta.of(A6.class);
                assertThrowsWithMessage(Exception.class, "oops", 
()->a6.construct("X", "foo"));
 
                PartBeanMeta<A7> a7 = PartBeanMeta.of(A7.class);
-               
assertThrown(()->a7.construct("foo")).asMessage().isContains("Constructor for 
type "+TNAME+"$A7 could not be found.");
+               assertThrowsWithMessage(Exception.class, "Constructor for type 
"+TNAME+"$A7 could not be found.", ()->a7.construct("foo"));
                assertEquals("A7", a7.getSchema().getName());
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
index c2690b3c4..bf63dc7ad 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/remote/Remote_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.http.remote;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.junit.Assert.*;
 import java.util.concurrent.*;
@@ -582,7 +581,7 @@ class Remote_Test extends SimpleTestBase {
        }
 
        @Test void g01_badMethodName() {
-               
assertThrown(()->client(G.class).header("Check","Foo").build().getRemote(G1.class)).isType(RemoteMetadataException.class).asMessage().isContains("Invalid
 value");
+               assertThrowsWithMessage(RemoteMetadataException.class, "Invalid 
value", ()->client(G.class).header("Check","Foo").build().getRemote(G1.class));
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParser_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParser_Test.java
index 2c3af3fc0..4189ec09e 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParser_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/httppart/OpenApiPartParser_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.common.internal.IOUtils.*;
 import static org.apache.juneau.common.internal.StringUtils.*;
 import static org.apache.juneau.httppart.HttpPartSchema.*;
@@ -101,9 +100,9 @@ public class OpenApiPartParser_Test extends SimpleTestBase {
 
                assertThrowsWithMessage(SchemaValidationException.class, 
"Minimum length of value not met.", ()->parse(s, "", String.class));
                assertThrowsWithMessage(SchemaValidationException.class, 
"Maximum length of value exceeded.", ()->parse(s, "123", String.class));
-               
assertThrown(()->tNone().minLength(2L).maxLength(1L).build()).asMessage().isContains("maxLength
 cannot be less than minLength.");
-               
assertThrown(()->tNone().minLength(-2L).build()).asMessage().isContains("minLength
 cannot be less than zero.");
-               
assertThrown(()->tNone().maxLength(-2L).build()).asMessage().isContains("maxLength
 cannot be less than zero.");
+               assertThrowsWithMessage(Exception.class, "maxLength cannot be 
less than minLength.", ()->tNone().minLength(2L).maxLength(1L).build());
+               assertThrowsWithMessage(Exception.class, "minLength cannot be 
less than zero.", ()->tNone().minLength(-2L).build());
+               assertThrowsWithMessage(Exception.class, "maxLength cannot be 
less than zero.", ()->tNone().maxLength(-2L).build());
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/json/CommonParserTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/json/CommonParserTest.java
index 21312fd1d..5763c6a70 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/json/CommonParserTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/json/CommonParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.json;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -117,7 +116,7 @@ class CommonParserTest extends SimpleTestBase {
                assertEquals(1, b.a);
                assertEquals(2, b.b);
 
-               assertThrown(()->JsonParser.DEFAULT.parse(in, 
B.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->JsonParser.DEFAULT.parse(in, B.class));
        }
 
        public static class B {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/json/CommonTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/json/CommonTest.java
index 7deb48c4f..02fd00dc7 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/json/CommonTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/json/CommonTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.json;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 
@@ -239,11 +238,11 @@ class CommonTest  extends SimpleTestBase{
                r3.r1 = r1;
 
                // No recursion detection
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("It's 
recommended you use the BeanTraverseContext.BEANTRAVERSE_detectRecursions 
setting to help locate the loop.");
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
 
                // Recursion detection, no ignore
                s.detectRecursions();
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("$R1","$R2","$R3");
+               assertThrowsWithMessage(Exception.class, "$R1", 
()->s.build().serialize(r1));
 
                s.ignoreRecursions();
                assertEquals("{name:'foo',r2:{name:'bar',r3:{name:'baz'}}}", 
s.build().serialize(r1));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/json/JsonParserTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/json/JsonParserTest.java
index c34d8a033..8154eb9e5 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/json/JsonParserTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/json/JsonParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.json;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.io.*;
 
@@ -31,7 +30,7 @@ class JsonParserTest extends SimpleTestBase {
        // Test invalid input
        
//====================================================================================================
        @Test void testInvalidJson() {
-               assertThrown(()->p.parse("{\na:1,\nb:xxx\n}", 
Object.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->p.parse("{\na:1,\nb:xxx\n}", Object.class));
        }
 
        @Test void testNonExistentAttribute() throws Exception {
@@ -45,31 +44,31 @@ class JsonParserTest extends SimpleTestBase {
                String s;
 
                // Strict mode does not allow unquoted values.
-               assertThrown(()->sp.parse("123", 
String.class)).asMessage().isContains("Did not find quote character");
+               assertThrowsWithMessage(Exception.class, "Did not find quote 
character", ()->sp.parse("123", String.class));
 
                s = p.parse(json, String.class);
                assertEquals("123", s);
 
                json = " 123 ";
                // Strict mode does not allow unquoted values.
-               assertThrown(()->sp.parse(" 123 ", 
String.class)).asMessage().isContains("Did not find quote character");
+               assertThrowsWithMessage(Exception.class, "Did not find quote 
character", ()->sp.parse(" 123 ", String.class));
 
                s = p.parse(json, String.class);
                assertEquals("123", s);
 
                json = "{\"fa\":123}";
-               assertThrown(()->sp.parse("{\"fa\":123}", 
A.class)).asMessage().isContains("Did not find quote character");
+               assertThrowsWithMessage(Exception.class, "Did not find quote 
character", ()->sp.parse("{\"fa\":123}", A.class));
 
                A a = p.parse(json, A.class);
                assertEquals("123", a.fa);
 
                json = " { \"fa\" : 123 } ";
-               assertThrown(()->sp.parse(" { \"fa\" : 123 } ", 
A.class)).asMessage().isContains("Did not find quote character");
+               assertThrowsWithMessage(Exception.class, "Did not find quote 
character", ()->sp.parse(" { \"fa\" : 123 } ", A.class));
 
                a = p.parse(json, A.class);
                assertEquals("123", a.fa);
 
-               assertThrown(()->sp.parse("'123'", 
String.class)).asMessage().isContains("Invalid quote character");
+               assertThrowsWithMessage(Exception.class, "Invalid quote 
character", ()->sp.parse("'123'", String.class));
        }
 
        public static class A {
@@ -78,13 +77,13 @@ class JsonParserTest extends SimpleTestBase {
 
        @Test void testStrictMode() {
                JsonParser p2 = sp;
-               assertThrown(()->p2.parse("{\"foo\":,\"bar\":}", 
JsonMap.class)).asMessage().isContains("Missing value detected.");
-               assertThrown(()->p2.parse("{\"foo\":'bar'}", 
JsonMap.class)).asMessage().isContains("Invalid quote character");
-               assertThrown(()->p2.parse("{'foo':\"bar\"}", 
JsonMap.class)).asMessage().isContains("Invalid quote character");
-               assertThrown(()->p2.parse("{foo:\"bar\"}", 
JsonMap.class)).asMessage().isContains("Unquoted attribute detected.");
-               assertThrown(()->p2.parse("{\"foo\":\"bar\"+\"baz\"}", 
JsonMap.class)).asMessage().isContains("String concatenation detected.");
-               assertThrown(()->p2.parse("{\"foo\":\"bar\" + \"baz\"}", 
JsonMap.class)).asMessage().isContains("String concatenation detected.");
-               assertThrown(()->p2.parse("{\"foo\":/*comment*/\"bar\"}", 
JsonMap.class)).asMessage().isContains("Javascript comment detected.");
+               assertThrowsWithMessage(Exception.class, "Missing value 
detected.", ()->p2.parse("{\"foo\":,\"bar\":}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "Invalid quote 
character", ()->p2.parse("{\"foo\":'bar'}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "Invalid quote 
character", ()->p2.parse("{'foo':\"bar\"}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "Unquoted attribute 
detected.", ()->p2.parse("{foo:\"bar\"}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "String concatenation 
detected.", ()->p2.parse("{\"foo\":\"bar\"+\"baz\"}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "String concatenation 
detected.", ()->p2.parse("{\"foo\":\"bar\" + \"baz\"}", JsonMap.class));
+               assertThrowsWithMessage(Exception.class, "Javascript comment 
detected.", ()->p2.parse("{\"foo\":/*comment*/\"bar\"}", JsonMap.class));
        }
 
        /**
@@ -131,7 +130,7 @@ class JsonParserTest extends SimpleTestBase {
                r = p1.parse(s, Number.class);
                assertEquals(0, r.intValue());
                assertTrue(r instanceof Integer);
-               assertThrown(()->p2.parse("\"\"", 
Number.class)).asMessage().isContains("Invalid JSON number");
+               assertThrowsWithMessage(Exception.class, "Invalid JSON number", 
()->p2.parse("\"\"", Number.class));
 
                // Either should allow 0 or -0.
                s = "0";
@@ -155,24 +154,24 @@ class JsonParserTest extends SimpleTestBase {
                r = p1.parse(s, Number.class);
                assertEquals(0123, r.intValue());
                assertTrue(r instanceof Integer);
-               assertThrown(()->p2.parse("0123", 
Number.class)).asMessage().isContains("Invalid JSON number");
+               assertThrowsWithMessage(Exception.class, "Invalid JSON number", 
()->p2.parse("0123", Number.class));
                s = "-0123";
                r = p1.parse(s, Number.class);
                assertEquals(-0123, r.intValue());
                assertTrue(r instanceof Integer);
-               assertThrown(()->p2.parse("-0123", 
Number.class)).asMessage().isContains("Invalid JSON number");
+               assertThrowsWithMessage(Exception.class, "Invalid JSON number", 
()->p2.parse("-0123", Number.class));
 
                // Lax allows 0x123 and -0x123, strict does not.
                s = "0x123";
                r = p1.parse(s, Number.class);
                assertEquals(0x123, r.intValue());
                assertTrue(r instanceof Integer);
-               assertThrown(()->p2.parse("0x123", 
Number.class)).asMessage().isContains("Invalid JSON number");
+               assertThrowsWithMessage(Exception.class, "Invalid JSON number", 
()->p2.parse("0x123", Number.class));
                s = "-0x123";
                r = p1.parse(s, Number.class);
                assertEquals(-0x123, r.intValue());
                assertTrue(r instanceof Integer);
-               assertThrown(()->p2.parse("-0x123", 
Number.class)).asMessage().isContains("Invalid JSON number");
+               assertThrowsWithMessage(Exception.class, "Invalid JSON number", 
()->p2.parse("-0x123", Number.class));
        }
 
        
//====================================================================================================
@@ -187,7 +186,7 @@ class JsonParserTest extends SimpleTestBase {
                C c = p1.parse(s, C.class);
                assertEquals("f=foobar", c.toString());
 
-               assertThrown(()->p2.parse(s, 
C.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, ()->p2.parse(s, C.class));
        }
 
        public static class C {
@@ -215,7 +214,7 @@ class JsonParserTest extends SimpleTestBase {
                r = reader("{foo:'bar'}{baz:'qux'}");
                x = p2.parse(r, JsonMap.class);
                assertJson(x, "{foo:'bar'}");
-               assertThrown(()->p2.parse(r, 
JsonMap.class)).asMessage().isContains("Reader is closed");
+               assertThrowsWithMessage(Exception.class, "Reader is closed", 
()->p2.parse(r, JsonMap.class));
        }
 
        
//====================================================================================================
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/msgpack/MsgPackParserTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/msgpack/MsgPackParserTest.java
index 820426803..5d19a8292 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/msgpack/MsgPackParserTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/msgpack/MsgPackParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.msgpack;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import java.io.*;
 
 import org.apache.juneau.*;
@@ -37,7 +36,7 @@ public class MsgPackParserTest extends SimpleTestBase {
                is = is("00 01");
                r = p.parse(is, Object.class);
                assertJson(r, "0");
-               assertThrown(()->p.parse(is, 
Object.class)).asMessage().isContains("Stream is closed");
+               assertThrowsWithMessage(Exception.class, "Stream is closed", 
()->p.parse(is, Object.class));
        }
 
        
//====================================================================================================
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectIntrospector_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectIntrospector_Test.java
index a490c8d0f..d91064e7c 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectIntrospector_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectIntrospector_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.objecttools;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.*;
 import org.junit.jupiter.api.*;
@@ -42,7 +41,7 @@ class ObjectIntrospector_Test extends SimpleTestBase {
                r = new ObjectIntrospector(in).invokeMethod("toString", "[]");
                assertEquals("foobar", r);
 
-               assertThrown(()->new 
ObjectIntrospector("foobar").invokeMethod("noSuchMethod", 
"[3,6]")).isType(NoSuchMethodException.class);
+               assertThrows(NoSuchMethodException.class, ()->new 
ObjectIntrospector("foobar").invokeMethod("noSuchMethod", "[3,6]"));
 
                r = new 
ObjectIntrospector(null).invokeMethod(String.class.getMethod("toString"), null);
                assertNull(r);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
index 2c06db811..a4bd7c6b4 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectRest_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.objecttools;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -446,9 +445,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(true, model.getBoolean("f8", true));
 
                assertNull(model.getMap("f1"));
-               
assertThrown(()->model.getMap("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f4")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4"));
                assertNull(model.getMap("f2a"));
                assertNull(model.getMap("f3a"));
                assertNull(model.getMap("f4a"));
@@ -458,9 +457,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertNull(model.getMap("f8"));
 
                assertEquals("{a:'b'}", model.getMap("f1", m).toString());
-               assertThrown(()->model.getMap("f2", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f3", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f4", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4", m));
                assertEquals("{a:'b'}", model.getMap("f2a", m).toString());
                assertEquals("{a:'b'}", model.getMap("f3a", m).toString());
                assertEquals("{a:'b'}", model.getMap("f4a", m).toString());
@@ -470,9 +469,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals("{a:'b'}", model.getMap("f8", m).toString());
 
                assertNull(model.getMap("f1"));
-               
assertThrown(()->model.getJsonMap("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f4")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4"));
                assertNull(model.getJsonMap("f2a"));
                assertNull(model.getJsonMap("f3a"));
                assertNull(model.getJsonMap("f4a"));
@@ -482,9 +481,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertNull(model.getJsonMap("f8"));
 
                assertEquals("{a:'b'}", model.getJsonMap("f1", m).toString());
-               assertThrown(()->model.getJsonMap("f2", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f3", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f4", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4", m));
                assertEquals("{a:'b'}", model.getJsonMap("f2a", m).toString());
                assertEquals("{a:'b'}", model.getJsonMap("f3a", m).toString());
                assertEquals("{a:'b'}", model.getJsonMap("f4a", m).toString());
@@ -494,9 +493,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals("{a:'b'}", model.getJsonMap("f8", m).toString());
 
                assertNull(model.getList("f1"));
-               
assertThrown(()->model.getList("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f4")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4"));
                assertNull(model.getList("f2a"));
                assertNull(model.getList("f3a"));
                assertNull(model.getList("f4a"));
@@ -506,9 +505,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertNull(model.getList("f8"));
 
                assertEquals("[{a:'b'}]", model.getList("f1", l).toString());
-               assertThrown(()->model.getList("f2", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f3", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f4", 
l)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4", l));
                assertEquals("[{a:'b'}]", model.getList("f2a", l).toString());
                assertEquals("[{a:'b'}]", model.getList("f3a", l).toString());
                assertEquals("[{a:'b'}]", model.getList("f4a", l).toString());
@@ -518,9 +517,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals("[{a:'b'}]", model.getList("f8", l).toString());
 
                assertNull(model.getJsonList("f1"));
-               
assertThrown(()->model.getJsonList("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f4")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4"));
                assertNull(model.getJsonList("f2a"));
                assertNull(model.getJsonList("f3a"));
                assertNull(model.getJsonList("f4a"));
@@ -530,9 +529,9 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertNull(model.getJsonList("f8"));
 
                assertEquals("[{a:'b'}]", model.getJsonList("f1", 
l).toString());
-               assertThrown(()->model.getJsonList("f2", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f3", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f4", 
l)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4", l));
                assertEquals("[{a:'b'}]", model.getJsonList("f2a", 
l).toString());
                assertEquals("[{a:'b'}]", model.getJsonList("f3a", 
l).toString());
                assertEquals("[{a:'b'}]", model.getJsonList("f4a", 
l).toString());
@@ -598,10 +597,10 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(2, (int)model.getInt("f2a"));
                assertEquals(3, (int)model.getInt("f3a"));
                assertEquals(1, (int)model.getInt("f4a"));
-               
assertThrown(()->model.getInt("f5")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getInt("f6")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getInt("f7")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getInt("f8")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f5"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f6"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f7"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f8"));
 
                assertEquals(1, (int)model.getInt("f1", 9));
                assertEquals(2, (int)model.getInt("f2", 9));
@@ -610,10 +609,10 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(2, (int)model.getInt("f2a", 9));
                assertEquals(3, (int)model.getInt("f3a", 9));
                assertEquals(1, (int)model.getInt("f4a", 9));
-               assertThrown(()->model.getInt("f5", 
9)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getInt("f6", 
9)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getInt("f7", 
9)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getInt("f8", 
9)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f5", 9));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f6", 9));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f7", 9));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f8", 9));
 
                assertEquals(1, (long)model.getLong("f1"));
                assertEquals(2, (long)model.getLong("f2"));
@@ -622,10 +621,10 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(2, (long)model.getLong("f2a"));
                assertEquals(3, (long)model.getLong("f3a"));
                assertEquals(1, (long)model.getLong("f4a"));
-               
assertThrown(()->model.getLong("f5")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getLong("f6")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getLong("f7")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getInt("f8")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f5"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f6"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f7"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getInt("f8"));
 
                assertEquals(1, (long)model.getLong("f1", 9L));
                assertEquals(2, (long)model.getLong("f2", 9L));
@@ -634,10 +633,10 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(2, (long)model.getLong("f2a", 9L));
                assertEquals(3, (long)model.getLong("f3a", 9L));
                assertEquals(1, (long)model.getLong("f4a", 9L));
-               assertThrown(()->model.getLong("f5", 
9L)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getLong("f6", 
9L)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getLong("f7", 
9L)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getLong("f8", 
9L)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f5", 9L));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f6", 9L));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f7", 9L));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getLong("f8", 9L));
 
                assertEquals(false, model.getBoolean("f1"));  // String "1" 
equates to false.
                assertEquals(true, model.getBoolean("f2"));
@@ -663,97 +662,97 @@ public class ObjectRest_Test extends SimpleTestBase {
                assertEquals(false, model.getBoolean("f7", true));
                assertEquals(false, model.getBoolean("f8", true));
 
-               
assertThrown(()->model.getMap("f1")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f4")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f2a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f3a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getMap("f4a")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f1"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4a"));
                assertEquals("{f5a:'a'}", model.getMap("f5").toString());
-               
assertThrown(()->model.getMap("f6")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f6"));
                assertEquals("{f5a:'a'}", model.getMap("f7").toString());
-               
assertThrown(()->model.getMap("f8")).isType(InvalidDataConversionException.class);
-
-               assertThrown(()->model.getMap("f1", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f2", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f3", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f4", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f2a", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f3a", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getMap("f4a", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f8"));
+
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f1", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f2a", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f3a", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f4a", m));
                assertEquals("{f5a:'a'}", model.getMap("f5", m).toString());
-               assertThrown(()->model.getMap("f6", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f6", m));
                assertEquals("{f5a:'a'}", model.getMap("f7", m).toString());
-               assertThrown(()->model.getMap("f8", 
m)).isType(InvalidDataConversionException.class);
-
-               
assertThrown(()->model.getJsonMap("f1")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f4")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f2a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f3a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonMap("f4a")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getMap("f8", m));
+
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f1"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4a"));
                assertEquals("{f5a:'a'}", model.getJsonMap("f5").toString());
-               
assertThrown(()->model.getJsonMap("f6")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f6"));
                assertEquals("{f5a:'a'}", model.getJsonMap("f7").toString());
-               
assertThrown(()->model.getJsonMap("f8")).isType(InvalidDataConversionException.class);
-
-               assertThrown(()->model.getJsonMap("f1", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f2", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f3", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f4", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f2a", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f3a", 
m)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonMap("f4a", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f8"));
+
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f1", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f2a", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f3a", m));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f4a", m));
                assertEquals("{f5a:'a'}", model.getJsonMap("f5", m).toString());
-               assertThrown(()->model.getJsonMap("f6", 
m)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f6", m));
                assertEquals("{f5a:'a'}", model.getJsonMap("f7", m).toString());
-               assertThrown(()->model.getJsonMap("f8", 
m)).isType(InvalidDataConversionException.class);
-
-               
assertThrown(()->model.getList("f1")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f4")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f2a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f3a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getList("f4a")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonMap("f8", m));
+
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f1"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4a"));
                assertEquals("[{f5a:'a'}]", model.getList("f5").toString());
                assertEquals("[{f6a:'a'}]", model.getList("f6").toString());
                assertEquals("[{f5a:'a'}]", model.getList("f7").toString());
                assertEquals("[{f6a:'a'}]", model.getList("f8").toString());
 
-               assertThrown(()->model.getList("f1", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f2", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f3", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f4", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f2a", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f3a", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getList("f4a", 
l)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f1", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f2a", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f3a", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getList("f4a", l));
                assertEquals("[{f5a:'a'}]", model.getList("f5", l).toString());
                assertEquals("[{f6a:'a'}]", model.getList("f6", l).toString());
                assertEquals("[{f5a:'a'}]", model.getList("f7", l).toString());
                assertEquals("[{f6a:'a'}]", model.getList("f8", l).toString());
 
-               
assertThrown(()->model.getJsonList("f1")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f2")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f3")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f4")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f2a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f3a")).isType(InvalidDataConversionException.class);
-               
assertThrown(()->model.getJsonList("f4a")).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f1"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3a"));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4a"));
                assertEquals("[{f5a:'a'}]", model.getJsonList("f5").toString());
                assertEquals("[{f6a:'a'}]", model.getJsonList("f6").toString());
                assertEquals("[{f5a:'a'}]", model.getJsonList("f7").toString());
                assertEquals("[{f6a:'a'}]", model.getJsonList("f8").toString());
 
-               assertThrown(()->model.getJsonList("f1", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f2", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f3", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f4", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f2a", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f3a", 
l)).isType(InvalidDataConversionException.class);
-               assertThrown(()->model.getJsonList("f4a", 
l)).isType(InvalidDataConversionException.class);
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f1", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f2a", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f3a", l));
+               assertThrows(InvalidDataConversionException.class, 
()->model.getJsonList("f4a", l));
                assertEquals("[{f5a:'a'}]", model.getJsonList("f5", 
l).toString());
                assertEquals("[{f6a:'a'}]", model.getJsonList("f6", 
l).toString());
                assertEquals("[{f5a:'a'}]", model.getJsonList("f7", 
l).toString());
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectSearcher_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectSearcher_Test.java
index d0a07706e..7d76531de 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectSearcher_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/objecttools/ObjectSearcher_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.objecttools;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import java.util.*;
 
@@ -188,9 +187,9 @@ public class ObjectSearcher_Test extends SimpleTestBase {
        @Test void a18_stringSearch_malformedQuotes() {
                Object in = list(A.create("'foo"), A.create("\"bar"), 
A.create("baz"));
 
-               assertThrown(()->run(in, 
"f='*")).asMessage().isContains("Unmatched string quotes");
+               assertThrowsWithMessage(Exception.class, "Unmatched string 
quotes", ()->run(in, "f='*"));
 
-               assertThrown(()->run(in, 
"f=\"*")).asMessage().isContains("Unmatched string quotes");
+               assertThrowsWithMessage(Exception.class, "Unmatched string 
quotes", ()->run(in, "f=\"*"));
 
                assertJson(run(in, "f='\\'*'"), "[{f:'\\'foo'}]");
                assertJson(run(in, "f='\"*'"), "[{f:'\"bar'}]");
@@ -369,7 +368,7 @@ public class ObjectSearcher_Test extends SimpleTestBase {
 
                for (int i = 0; i < ss.length; i+=2) {
                        final int i2 = i;
-                       assertThrown(()->run(INT_BEAN_ARRAY, 
ss[i2])).asMessage().isContains(ss[i+1]);
+                       assertThrowsWithMessage(Exception.class, ss[i+1], 
()->run(INT_BEAN_ARRAY, ss[i2]));
                }
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/reflect/ClassInfoTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/reflect/ClassInfoTest.java
index 8869f89cb..9637f7e99 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/reflect/ClassInfoTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/reflect/ClassInfoTest.java
@@ -15,7 +15,6 @@ package org.apache.juneau.reflect;
 import static java.lang.annotation.ElementType.*;
 import static java.lang.annotation.RetentionPolicy.*;
 import static org.apache.juneau.Context.*;
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.reflect.ClassInfo.*;
 import static org.apache.juneau.reflect.ReflectFlags.*;
@@ -1586,11 +1585,11 @@ public class ClassInfoTest extends SimpleTestBase {
        }
 
        @Test void newInstance_type() {
-               
assertThrown(()->aTypeInfo.newInstance()).isType(ExecutableException.class);
-               
assertThrown(()->pTypeInfo.newInstance()).isType(ExecutableException.class);
-               
assertThrown(()->pTypeDimensionalInfo.newInstance()).isType(ExecutableException.class);
-               
assertThrown(()->pTypeGenericInfo.newInstance()).isType(Exception.class);
-               
assertThrown(()->pTypeGenericArgInfo.newInstance()).isType(ExecutableException.class);
+               assertThrows(ExecutableException.class, 
()->aTypeInfo.newInstance());
+               assertThrows(ExecutableException.class, 
()->pTypeInfo.newInstance());
+               assertThrows(ExecutableException.class, 
()->pTypeDimensionalInfo.newInstance());
+               assertThrows(Exception.class, 
()->pTypeGenericInfo.newInstance());
+               assertThrows(ExecutableException.class, 
()->pTypeGenericArgInfo.newInstance());
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
index ebe92ad4e..714b85214 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestCallException_Test.java
@@ -24,7 +24,7 @@ import org.apache.juneau.rest.mock.*;
 import org.apache.juneau.rest.servlet.*;
 import org.junit.jupiter.api.*;
 
-public class RestCallException_Test extends SimpleTestBase {
+class RestCallException_Test extends SimpleTestBase {
 
        public static class ABean {
                public int f;
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
index 3aebbd326..cb355a4cd 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_BasicCalls_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpEntities.*;
 import static org.apache.juneau.http.HttpParts.*;
 import static org.apache.juneau.http.HttpResources.*;
@@ -109,7 +108,7 @@ public class RestClient_BasicCalls_Test extends 
SimpleTestBase {
        @Test void a02_get() throws Exception {
                client().build().get("/bean").run().assertContent("{f:1}");
 
-               
assertThrown(()->client().build().get("/bean").content(bean).run()).asMessage().isContains("Method
 does not support content entity.");
+               assertThrowsWithMessage(Exception.class, "Method does not 
support content entity.", 
()->client().build().get("/bean").content(bean).run());
        }
 
        @Test void a03_get_exhaustiveUrls() throws Exception {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
index 0487c3d2b..9ada3c762 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_CallbackStrings_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import java.util.*;
 
@@ -59,7 +58,7 @@ public class RestClient_CallbackStrings_Test extends 
SimpleTestBase {
        @Test void a02_callback_invalidStrings() {
                RestClient x = MockRestClient.build(A.class);
                for (String s : list("","GET","GET ","GET {","GET {xxx} 
/foo",null)) {
-                       
assertThrown(()->x.callback(s).run().getContent().asString()).asMessage().isContains("Invalid
 format for call string");
+                       assertThrowsWithMessage(Exception.class, "Invalid 
format for call string", ()->x.callback(s).run().getContent().asString());
                }
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
index c2a79b724..02d9e72cf 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Config_RestClient_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.common.internal.ThrowableUtils.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.http.HttpResponses.*;
@@ -103,8 +102,8 @@ class RestClient_Config_RestClient_Test extends 
SimpleTestBase {
        @Test void a02_errorCodes() {
                RestClient x1 = client().errorCodes(x -> x == 200).build();
                RestClient x2 = client().build();
-               assertThrown(()->x1.get("/echo").run()).is(x -> 
((RestCallException)x).getResponseCode() == 200);
-               assertThrown(()->x2.get("/echo").errorCodes(x -> x == 
200).run()).is(x -> ((RestCallException)x).getResponseCode() == 200);
+               assertEquals(200, thrown(RestCallException.class, 
()->x1.get("/echo").run()).getResponseCode());
+               assertEquals(200, thrown(RestCallException.class, 
()->x2.get("/echo").errorCodes(x -> x == 200).run()).getResponseCode());
        }
 
        @Test void a03_executorService() throws Exception {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
index d568c8dd6..98456cf65 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Body_Test.java
@@ -105,13 +105,13 @@ class RestClient_Response_Body_Test extends 
SimpleTestBase {
                RestResponse r1 = client().build().get("/bean").run();
                InputStream is = r1.getContent().asInputStream();
                assertEquals("{f:1}", toUtf8(is));
-               
assertThrown(()->r1.getContent().asInputStream()).asMessage().isContains("Response
 has already been consumed.");
+               assertThrowsWithMessage(Exception.class, "Response has already 
been consumed.", ()->r1.getContent().asInputStream());
 
                // Non-repeatable entity.
                TestClient x = testClient().entity(inputStreamEntity("{f:2}"));
                RestResponse r2 = x.get("/bean").run();
                r2.getContent().asInputStream();
-               
assertThrown(()->r2.getContent().asInputStream()).asMessage().isContains("Response
 has already been consumed");
+               assertThrowsWithMessage(Exception.class, "Response has already 
been consumed", ()->r2.getContent().asInputStream());
 
                // Repeatable entity.
                x.entity(new StringEntity("{f:2}"));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
index 5ce4243cb..b5a80b0a4 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Headers_Test.java
@@ -14,7 +14,6 @@ package org.apache.juneau.rest.client;
 
 import static java.time.format.DateTimeFormatter.*;
 import static java.time.temporal.ChronoUnit.*;
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.junit.Assert.*;
 import java.time.*;
@@ -67,8 +66,8 @@ class RestClient_Response_Headers_Test extends SimpleTestBase 
{
                h = 
checkFooClient().build().get("/echo").header("Foo","\"bar\"").run().getHeader("Foo").asHeader(ETag.class).assertName().is("ETag").assertStringValue().is("\"bar\"");
                assertTrue(h instanceof ETag);
 
-               
assertThrown(()->checkFooClient().build().get("/echo").header("Foo","bar").run().getHeader("Foo").asHeader(Age.class)).asMessage().isContains("Value
 'bar' could not be parsed as an integer.");
-               
assertThrown(()->checkFooClient().build().get("/echo").header("Foo","bar").run().getHeader("Foo").asHeader(A2.class)).asMessage().isContains("Could
 not determine a method to construct type");
+               assertThrowsWithMessage(Exception.class, "Value 'bar' could not 
be parsed as an integer.", 
()->checkFooClient().build().get("/echo").header("Foo","bar").run().getHeader("Foo").asHeader(Age.class));
+               assertThrowsWithMessage(Exception.class, "Could not determine a 
method to construct type", 
()->checkFooClient().build().get("/echo").header("Foo","bar").run().getHeader("Foo").asHeader(A2.class));
 
                
checkFooClient().build().get("/echo").header("Foo","bar").run().getHeader("Foo").asCsvHeader().assertName().is("Foo").assertStringValue().is("bar");
                
checkFooClient().build().get("/echo").header("Foo","*").run().getHeader("Foo").asEntityTagsHeader().assertName().is("Foo").assertStringValue().is("*");
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
index fa60f7f08..6e88ddba3 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Response_Test.java
@@ -14,7 +14,6 @@ package org.apache.juneau.rest.client;
 
 import static java.time.format.DateTimeFormatter.*;
 import static java.time.temporal.ChronoUnit.*;
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.junit.Assert.*;
 import java.time.*;
@@ -68,7 +67,7 @@ class RestClient_Response_Test extends SimpleTestBase {
 
        @Test void a01_getStatusLine() throws RestCallException {
                
assertEquals(200,client().build().get("/bean").run().getStatusLine().getStatusCode());
-               
assertThrown(()->client().build(A1.class).get("/bean").run()).asMessage().isContains("caused
 response code '0, null'");
+               assertThrowsWithMessage(Exception.class, "caused response code 
'0, null'", ()->client().build(A1.class).get("/bean").run());
                
assertEquals(0,client().ignoreErrors().build(A1.class).get("/bean").run().getStatusLine().getStatusCode());
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
index 374982045..58fd5945f 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/client/RestClient_Test.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.client;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.http.HttpResponses.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
@@ -97,13 +96,13 @@ class RestClient_Test extends SimpleTestBase {
        @Test void a04_request_whenClosed() {
                RestClient rc = client().build();
                rc.closeQuietly();
-               
assertThrown(()->rc.request("get","/bean",null)).asMessage().isContains("RestClient.close()
 has already been called");
+               assertThrowsWithMessage(Exception.class, "RestClient.close() 
has already been called", ()->rc.request("get","/bean",null));
        }
 
        @Test void a05_request_whenClosed_withStackCreation() {
                RestClient rc = client().debug().build();
                rc.closeQuietly();
-               
assertThrown(()->rc.request("get","/bean",null)).asMessage().isContains("RestClient.close()
 has already been called");
+               assertThrowsWithMessage(Exception.class, "RestClient.close() 
has already been called", ()->rc.request("get","/bean",null));
        }
 
        @Test void a06_request_runCalledTwice() {
@@ -206,7 +205,7 @@ class RestClient_Test extends SimpleTestBase {
        @SuppressWarnings("deprecation")
        @Test void c06_httpClient_unusedHttpClientMethods() {
                RestClient x = RestClient.create().build();
-               
assertThrown(x::getParams).isType(UnsupportedOperationException.class);
+               assertThrows(UnsupportedOperationException.class, x::getParams);
                assertNotNull(x.getConnectionManager());
        }
 
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
index bd9d61bb0..2b0c03fd6 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.test.client;
 
-import static org.apache.juneau.assertions.AssertionPredicates.*;
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.http.HttpHeaders.*;
 import static org.apache.juneau.http.HttpParts.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
@@ -822,7 +820,7 @@ public class ThirdPartyProxyTest {
 
        @Test
        public void ea02_setWrongInt() {
-               
assertThrown(()->proxy.setInt(2)).asMessages().isAny(contains("expected:<1> but 
was:<2>"));
+               assertThrowsWithMessage(AssertionError.class, "expected:<1> but 
was:<2>", ()->proxy.setInt(2));
        }
 
        @Test
@@ -857,7 +855,7 @@ public class ThirdPartyProxyTest {
 
        @Test
        public void ea09_setNullStringBad() {
-               
assertThrown(()->proxy.setNullString("foo")).asMessages().isAny(contains("expected
 null, but was:<foo>"));
+               assertThrowsWithMessage(AssertionError.class, "expected null, 
but was:<foo>", ()->proxy.setNullString("foo"));
        }
 
        @Test
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/uon/CommonParser_UonTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/uon/CommonParser_UonTest.java
index 689cd6a1b..25803e358 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/uon/CommonParser_UonTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/uon/CommonParser_UonTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.uon;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -107,7 +106,7 @@ class CommonParser_UonTest extends SimpleTestBase {
                assertEquals(1, t.a);
                assertEquals(2, t.b);
 
-               assertThrown(()->UonParser.DEFAULT.parse(in, 
B.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->UonParser.DEFAULT.parse(in, B.class));
        }
 
        public static class B {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
index 316fe4589..6fff10189 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/uon/Common_UonTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.uon;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 
@@ -231,11 +230,11 @@ class Common_UonTest extends SimpleTestBase {
                r3.r1 = r1;
 
                // No recursion detection
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("It's 
recommended you use the BeanTraverseContext.BEANTRAVERSE_detectRecursions 
setting to help locate the loop.");
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
 
                // Recursion detection, no ignore
                s.detectRecursions();
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("$R1", "$R2", 
"$R3");
+               assertThrowsWithMessage(Exception.class, list("$R1", "$R2", 
"$R3"), ()->s.build().serialize(r1));
 
                s.ignoreRecursions();
                assertEquals("(name=foo,r2=(name=bar,r3=(name=baz)))", 
s.build().serialize(r1));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/uon/UonParserTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/uon/UonParserTest.java
index a40da913d..09b9e7a21 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/uon/UonParserTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/uon/UonParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.uon;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.io.*;
 import java.util.*;
@@ -260,7 +259,7 @@ public class UonParserTest extends SimpleTestBase {
                t = "x{}|\\^[]`<>#%\"&+";
                assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(t, Object.class));
                assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(t, String.class));
-               assertThrown(()->pe.parse( "x{}|\\^[]`<>#%\"&+", 
Object.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, ()->pe.parse( 
"x{}|\\^[]`<>#%\"&+", Object.class));
                t = "x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B";
                assertEquals("x{}|\\^[]`<>#%\"&+", pe.parse(t, Object.class));
                assertEquals("x{}|\\^[]`<>#%\"&+", pe.parse(t, String.class));
@@ -269,7 +268,7 @@ public class UonParserTest extends SimpleTestBase {
                t = "(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)";
                m = (Map)p.parse(t, Object.class);
                assertEquals("x{}|\\^[]`<>#%\"&+", m.get("x{}|\\^[]`<>#%\"&+"));
-               
assertThrown(()->pe.parse("(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)", 
Object.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->pe.parse("(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)", Object.class));
                t = 
"(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)";
                m = (Map)pe.parse(t, Object.class);
                assertEquals("x{}|\\^[]`<>#%\"&+", m.get("x{}|\\^[]`<>#%\"&+"));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
index 7fec75af4..158904aee 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -109,7 +108,7 @@ class CommonParser_UrlEncodingTest extends SimpleTestBase {
                assertEquals(1, t.a);
                assertEquals(2, t.b);
 
-               assertThrown(()->UrlEncodingParser.DEFAULT.parse(in, 
B.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->UrlEncodingParser.DEFAULT.parse(in, B.class));
        }
 
        public static class B {
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
index dfb2a5f12..709352847 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import static org.apache.juneau.utest.utils.Utils2.*;
 
@@ -233,11 +232,11 @@ class Common_UrlEncodingTest extends SimpleTestBase {
                r3.r1 = r1;
 
                // No recursion detection
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("It's 
recommended you use the BeanTraverseContext.BEANTRAVERSE_detectRecursions 
setting to help locate the loop.");
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
 
                // Recursion detection, no ignore
                s.detectRecursions();
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("[0] 
root:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R1", "->[1] 
r2:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R2", "->[2] 
r3:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R3", "->[3] 
r1:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R1");
+               assertThrowsWithMessage(Exception.class, list("[0] 
root:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R1", "->[1] 
r2:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R2", "->[2] 
r3:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R3", "->[3] 
r1:org.apache.juneau.urlencoding.Common_UrlEncodingTest$R1"), 
()->s.build().serialize(r1));
 
                s.ignoreRecursions();
                assertEquals("name=foo&r2=(name=bar,r3=(name=baz))", 
s.build().serialize(r1));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
index 7f9e8305b..7b1623d96 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -225,13 +224,13 @@ public class UrlEncodingParserTest extends SimpleTestBase 
{
 
                // Encoded chars
                // Top level
-               assertThrown(()->p.parse("_value=x{}|\\^[]`<>#%\"&+", 
Object.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->p.parse("_value=x{}|\\^[]`<>#%\"&+", Object.class));
                t = "_value=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B";
                assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(t, Object.class));
                assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(t, String.class));
 
                // 2nd level
-               
assertThrown(()->p.parse("?x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+", 
Object.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->p.parse("?x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+", Object.class));
                t = 
"?x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B";
                m = (Map)p.parse(t, Object.class);
                assertEquals("x{}|\\^[]`<>#%\"&+", m.get("x{}|\\^[]`<>#%\"&+"));
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/ArrayUtilsTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/utils/ArrayUtilsTest.java
index b66420eb8..fa5d94c60 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/utils/ArrayUtilsTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/utils/ArrayUtilsTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.utils;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ArrayUtils.*;
 import static org.junit.Assert.*;
 import java.util.*;
@@ -50,14 +49,14 @@ class ArrayUtilsTest extends SimpleTestBase {
        @Test void testAsSet() {
                String[] s = null;
 
-               
assertThrown(()->asSet((String[])null)).isType(IllegalArgumentException.class);
+               assertThrows(IllegalArgumentException.class, 
()->asSet((String[])null));
 
                s = new String[]{"a"};
                Iterator<String> i = asSet(s).iterator();
                assertEquals("a", i.next());
 
-               
assertThrown(i::remove).isType(UnsupportedOperationException.class);
-               assertThrown(i::next).isType(NoSuchElementException.class);
+               assertThrows(UnsupportedOperationException.class, i::remove);
+               assertThrows(NoSuchElementException.class, i::next);
        }
 
        
//====================================================================================================
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
index a05fd8a00..2533de2a6 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/utils/FilteredMapTest.java
@@ -12,7 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.utils;
 
-import static org.apache.juneau.assertions.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
+
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -20,15 +21,14 @@ import org.apache.juneau.collections.*;
 import org.apache.juneau.internal.*;
 import org.junit.jupiter.api.*;
 
-public class FilteredMapTest extends SimpleTestBase {
+class FilteredMapTest extends SimpleTestBase {
 
        Map<?,?> m3;
 
        
//====================================================================================================
        // testBasic
        
//====================================================================================================
-       @Test
-       public void testBasic() throws Exception {
+       @Test void testBasic() throws Exception {
                JsonMap m = JsonMap.ofJson("{a:'1',b:'2'}");
 
                ClassMeta<Map<String,Object>> cm = 
BeanContext.DEFAULT.getClassMeta(Map.class, String.class, Object.class);
@@ -41,7 +41,7 @@ public class FilteredMapTest extends SimpleTestBase {
                m2.entrySet().iterator().next().setValue("3");
                assertJson(m2, "{a:'3'}");
 
-               assertThrown(()->new FilteredMap<>(cm2, null, new 
String[0])).isType(IllegalArgumentException.class);
-               assertThrown(()->new FilteredMap<>(cm, m, 
null)).isType(IllegalArgumentException.class);
+               assertThrows(IllegalArgumentException.class, ()->new 
FilteredMap<>(cm2, null, new String[0]));
+               assertThrows(IllegalArgumentException.class, ()->new 
FilteredMap<>(cm, m, null));
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/MultiSetTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/utils/MultiSetTest.java
index 46ab89f21..01375e200 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/utils/MultiSetTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/utils/MultiSetTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.utils;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -39,7 +38,7 @@ public class MultiSetTest extends SimpleTestBase {
                assertTrue(i1.hasNext());
                assertEquals("4", i1.next());
                assertFalse(i1.hasNext());
-               assertThrown(i1::next).isType(NoSuchElementException.class);
+               assertThrows(NoSuchElementException.class, i1::next);
 
                l1 = Arrays.asList(new String[]{"1","2"});
                l2 = Arrays.asList(new String[]{});
@@ -50,7 +49,7 @@ public class MultiSetTest extends SimpleTestBase {
                assertTrue(i2.hasNext());
                assertEquals("2", i2.next());
                assertFalse(i2.hasNext());
-               assertThrown(i2::next).isType(NoSuchElementException.class);
+               assertThrows(NoSuchElementException.class, i2::next);
 
                l1 = Arrays.asList(new String[]{});
                l2 = Arrays.asList(new String[]{"3","4"});
@@ -61,14 +60,14 @@ public class MultiSetTest extends SimpleTestBase {
                assertTrue(i3.hasNext());
                assertEquals("4", i3.next());
                assertFalse(i3.hasNext());
-               assertThrown(i3::next).isType(NoSuchElementException.class);
+               assertThrows(NoSuchElementException.class, i3::next);
 
                l1 = Arrays.asList(new String[]{});
                l2 = Arrays.asList(new String[]{});
                ms = new MultiSet<>(l1, l2);
                Iterator<String> i4 = ms.iterator();
                assertFalse(i4.hasNext());
-               assertThrown(i4::next).isType(NoSuchElementException.class);
+               assertThrows(NoSuchElementException.class, i4::next);
 
                l1 = Arrays.asList(new String[]{"1","2"});
                ms = new MultiSet<>(l1);
@@ -78,7 +77,7 @@ public class MultiSetTest extends SimpleTestBase {
                assertTrue(i5.hasNext());
                assertEquals("2", i5.next());
                assertFalse(i5.hasNext());
-               assertThrown(i5::next).isType(NoSuchElementException.class);
+               assertThrows(NoSuchElementException.class, i5::next);
 
                l1 = new LinkedList<>(Arrays.asList(new String[]{"1","2"}));
                l2 = new LinkedList<>(Arrays.asList(new String[]{"3","4"}));
@@ -112,9 +111,9 @@ public class MultiSetTest extends SimpleTestBase {
                assertJson(ms, "[]");
                assertEquals(0, ms.size());
 
-               assertThrown(()->new 
MultiSet<>((Collection<String>)null)).isType(IllegalArgumentException.class);
-               assertThrown(()->new 
MultiSet<String>().iterator().next()).isType(NoSuchElementException.class);
-               assertThrown(()->new 
MultiSet<String>().iterator().remove()).isType(NoSuchElementException.class);
+               assertThrows(IllegalArgumentException.class, ()->new 
MultiSet<>((Collection<String>)null));
+               assertThrows(NoSuchElementException.class, ()->new 
MultiSet<String>().iterator().next());
+               assertThrows(NoSuchElementException.class, ()->new 
MultiSet<String>().iterator().remove());
 
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/SimpleMapTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/utils/SimpleMapTest.java
index bca96c35f..d38f35868 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/utils/SimpleMapTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/utils/SimpleMapTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.utils;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.*;
 import org.apache.juneau.internal.*;
@@ -33,15 +32,15 @@ class SimpleMapTest extends SimpleTestBase {
                assertJson(m, "{a:'1',b:'B'}");
                m.entrySet().iterator().next().setValue("2");
                assertJson(m, "{a:'2',b:'B'}");
-               assertThrown(()->m.put("c", 
"1")).isType(IllegalArgumentException.class);
+               assertThrows(IllegalArgumentException.class, ()->m.put("c", 
"1"));
 
                assertNull(m.get("c"));
 
-               assertThrown(()->new SimpleMap<>(null, 
vals)).isType(IllegalArgumentException.class);
-               assertThrown(()->new SimpleMap<>(keys, 
null)).isType(IllegalArgumentException.class);
-               assertThrown(()->new SimpleMap<>(keys, new 
Object[0])).isType(IllegalArgumentException.class);
+               assertThrows(IllegalArgumentException.class, ()->new 
SimpleMap<>(null, vals));
+               assertThrows(IllegalArgumentException.class, ()->new 
SimpleMap<>(keys, null));
+               assertThrows(IllegalArgumentException.class, ()->new 
SimpleMap<>(keys, new Object[0]));
 
                keys[0] = null;
-               assertThrown(()->new SimpleMap<>(keys, 
vals)).isType(IllegalArgumentException.class);
+               assertThrows(IllegalArgumentException.class, ()->new 
SimpleMap<>(keys, vals));
        }
 }
\ No newline at end of file
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/utils/StringBuilderWriterTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/utils/StringBuilderWriterTest.java
index cd7142e31..faf66bea3 100755
--- 
a/juneau-utest/src/test/java/org/apache/juneau/utils/StringBuilderWriterTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/utils/StringBuilderWriterTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.utils;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import org.apache.juneau.*;
 import org.apache.juneau.internal.*;
@@ -47,11 +46,11 @@ public class StringBuilderWriterTest extends SimpleTestBase 
{
                sbw2.write(buff, 0, 0);
                assertEquals("abc", sbw2.toString());
 
-               assertThrown(()-> sbw2.write(buff, -1, 
buff.length)).isType(IndexOutOfBoundsException.class);
-               assertThrown(()-> sbw2.write(buff, buff.length+1, 
0)).isType(IndexOutOfBoundsException.class);
-               assertThrown(()-> sbw2.write(buff, buff.length-1, 
2)).isType(IndexOutOfBoundsException.class);
-               assertThrown(()-> sbw2.write(buff, 0, 
buff.length+1)).isType(IndexOutOfBoundsException.class);
-               assertThrown(()-> sbw2.write(buff, 0, 
-1)).isType(IndexOutOfBoundsException.class);
+               assertThrows(IndexOutOfBoundsException.class, ()-> 
sbw2.write(buff, -1, buff.length));
+               assertThrows(IndexOutOfBoundsException.class, ()-> 
sbw2.write(buff, buff.length+1, 0));
+               assertThrows(IndexOutOfBoundsException.class, ()-> 
sbw2.write(buff, buff.length-1, 2));
+               assertThrows(IndexOutOfBoundsException.class, ()-> 
sbw2.write(buff, 0, buff.length+1));
+               assertThrows(IndexOutOfBoundsException.class, ()-> 
sbw2.write(buff, 0, -1));
 
                sbw.flush();
                sbw.close();
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/xml/CommonParserTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/xml/CommonParserTest.java
index 82e6dd2c7..9a7e2ad9c 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/xml/CommonParserTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/xml/CommonParserTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.xml;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.junit.Assert.*;
 import java.util.*;
 
@@ -111,7 +110,7 @@ class CommonParserTest  extends SimpleTestBase{
                assertEquals(1, t.a);
                assertEquals(2, t.b);
 
-               assertThrown(()->XmlParser.DEFAULT.parse(in2, 
B.class)).isType(ParseException.class);
+               assertThrows(ParseException.class, 
()->XmlParser.DEFAULT.parse(in2, B.class));
        }
 
        public static class B {
diff --git a/juneau-utest/src/test/java/org/apache/juneau/xml/CommonTest.java 
b/juneau-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
index 2d6ea577c..9438ec307 100755
--- a/juneau-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/xml/CommonTest.java
@@ -12,7 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.xml;
 
-import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.internal.CollectionUtils.list;
 import static org.apache.juneau.utest.utils.Utils2.*;
@@ -223,11 +222,15 @@ class CommonTest extends SimpleTestBase {
                r3.r1 = r1;
 
                // No recursion detection
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("It's 
recommended you use the BeanTraverseContext.BEANTRAVERSE_detectRecursions 
setting to help locate the loop.");
+               assertThrowsWithMessage(Exception.class, "It's recommended you 
use the BeanTraverseContext.BEANTRAVERSE_detectRecursions setting to help 
locate the loop.", ()->s.build().serialize(r1));
 
                // Recursion detection, no ignore
                s.detectRecursions();
-               
assertThrown(()->s.build().serialize(r1)).asMessage().isContains("[0] 
<noname>:org.apache.juneau.xml.CommonTest$R1", "->[1] 
r2:org.apache.juneau.xml.CommonTest$R2", "->[2] 
r3:org.apache.juneau.xml.CommonTest$R3", "->[3] 
r1:org.apache.juneau.xml.CommonTest$R1");
+               assertThrowsWithMessage(
+                       Exception.class,
+                       list("[0] 
<noname>:org.apache.juneau.xml.CommonTest$R1", "->[1] 
r2:org.apache.juneau.xml.CommonTest$R2", "->[2] 
r3:org.apache.juneau.xml.CommonTest$R3", "->[3] 
r1:org.apache.juneau.xml.CommonTest$R1"),
+                       ()->s.build().serialize(r1)
+               );
 
                s.ignoreRecursions();
                
assertEquals("<object><name>foo</name><r2><name>bar</name><r3><name>baz</name></r3></r2></object>",
 s.build().serialize(r1));

Reply via email to