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 646647349 Unit test modernization.
646647349 is described below

commit 6466473496448942a82f67de7b2b25c92ecf2518
Author: James Bognar <[email protected]>
AuthorDate: Fri Aug 8 08:54:29 2025 -0400

    Unit test modernization.
---
 .../java/org/apache/juneau/SimpleTestBase.java     |  12 ++
 .../juneau/config/ConfigMapListenerTest.java       |  30 ++--
 .../org/apache/juneau/config/ConfigMapTest.java    | 186 ++++++++++-----------
 .../java/org/apache/juneau/config/ConfigTest.java  |  58 +++----
 .../java/org/apache/juneau/cp/BeanStore_Test.java  |   6 +-
 .../org/apache/juneau/http/MediaType_Test.java     |   2 +-
 .../org/apache/juneau/http/StringRanges_Test.java  |   2 +-
 7 files changed, 154 insertions(+), 142 deletions(-)

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 5f8d93e9e..40c7417f1 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/SimpleTestBase.java
@@ -38,6 +38,10 @@ public abstract class SimpleTestBase {
                AssertionHelpers.assertJson(value, json);
        }
 
+       protected static void assertLines(String expected, Object value) {
+               assertEquals(expected, 
Utils.readable(value).replaceAll("\\r?\\n", "|"));
+       }
+
        /**
         * Asserts the JSON5 representation of the specified object.
         */
@@ -151,6 +155,14 @@ public abstract class SimpleTestBase {
                AssertionHelpers.assertEmpty(c);
        }
 
+       /**
+        * Asserts that a collection is not null and empty.
+        */
+       protected static void assertStringEmpty(Object s) {
+               assertNotNull(s);
+               assertTrue(Utils.readable(s).isEmpty());
+       }
+
        /**
         * Asserts that a collection is not null and of the specified size.
         */
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapListenerTest.java
 
b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapListenerTest.java
index 7550497bd..eefb89665 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapListenerTest.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/config/ConfigMapListenerTest.java
@@ -50,7 +50,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("foo = baz|");
+               assertLines("foo = baz|", cm);
        }
 
        @Test void testBasicNormalSection() throws Exception {
@@ -76,7 +76,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|foo = 
baz|");
+               assertLines("[S1]|foo = baz|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -105,7 +105,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = 
vb|[S1]|k1 = v1b|");
+               assertLines("k = vb|[S1]|k1 = v1b|", cm);
        }
 
        @Test void testAddNewEntriesWithAttributes() throws Exception {
@@ -130,7 +130,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#k|k<^*> = kb 
# C|[S1]|#k1|k1<^*> = k1b # C1|");
+               assertLines("#k|k<^*> = kb # C|[S1]|#k1|k1<^*> = k1b # C1|", 
cm);
        }
 
        @Test void testAddExistingEntriesWithAttributes() throws Exception {
@@ -161,7 +161,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#kb|k<^*> = 
kb # Cb|#S1|[S1]|#k1b|k1<^*> = k1b # Cb1|");
+               assertLines("#kb|k<^*> = kb # Cb|#S1|[S1]|#k1b|k1<^*> = k1b # 
Cb1|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -193,7 +193,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|");
+               assertLines("[S1]|", cm);
        }
 
        @Test void testRemoveExistingEntriesWithAttributes() throws Exception {
@@ -224,7 +224,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#S1|[S1]|");
+               assertLines("#S1|[S1]|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -256,7 +256,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#D1||#S1|[S1]|[S2]|[S3]|k3 = v3|");
+               assertLines("#D1||#S1|[S1]|[S2]|[S3]|k3 = v3|", cm);
        }
 
        @Test void testModifyExistingSections() throws Exception {
@@ -290,7 +290,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#Db||#S1b|[S1]|[S2]|[S3]|k3 = v3|");
+               assertLines("#Db||#S1b|[S1]|[S2]|[S3]|k3 = v3|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -333,7 +333,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("");
+               assertLines("", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -372,7 +372,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#Da||k = v # 
cv||#S1|[S1]|#k1|k1 = v1 # cv1|[S2]|#k2|k2 = v2 # cv2|[S3]|");
+               assertLines("#Da||k = v # cv||#S1|[S1]|#k1|k1 = v1 # 
cv1|[S2]|#k2|k2 = v2 # cv2|[S3]|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -409,7 +409,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1b|[S2]|k2 = v2b|");
+               assertLines("[S1]|k1 = v1b|[S2]|k2 = v2b|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -446,7 +446,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                assertNull(l.error);
                cm.unregister(l);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1c|");
+               assertLines("[S1]|k1 = v1c|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -487,7 +487,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                        assertNull(l.error);
                        cm.unregister(l);
 
-                       assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|k1 = v1c|");
+                       assertLines("[S1]|k1 = v1c|", cm);
                }
        }
 
@@ -528,7 +528,7 @@ class ConfigMapListenerTest extends SimpleTestBase {
                        assertNull(l.error);
                        cm.unregister(l);
 
-                       assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|k1 = v1c|");
+                       assertLines("[S1]|k1 = v1c|", cm);
                }
        }
 
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 4bdb4e9ef..0b8b2d600 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
@@ -59,7 +59,7 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("foo=bar|");
+               assertLines("foo=bar|", cm);
 
                assertEquals("", join(cm.getPreLines(""), '|'));
                assertEquals("", join(cm.getEntry("", "foo").getPreLines(), 
'|'));
@@ -69,7 +69,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("foo=bar|");
+               assertLines("foo=bar|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -82,7 +82,7 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#comment|foo=bar|");
+               assertLines("#comment|foo=bar|", cm);
 
                assertEquals("", join(cm.getPreLines(""), '|'));
                assertEquals("#comment", join(cm.getEntry("", 
"foo").getPreLines(), '|'));
@@ -92,7 +92,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#comment|foo=bar|");
+               assertLines("#comment|foo=bar|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -105,7 +105,7 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[MySection]|foo=bar|");
+               assertLines("[MySection]|foo=bar|", cm);
 
                assertEquals("", join(cm.getPreLines(""), '|'));
                assertEquals("", join(cm.getPreLines("MySection"), '|'));
@@ -116,7 +116,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[MySection]|foo=bar|");
+               assertLines("[MySection]|foo=bar|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -129,7 +129,7 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[MySection]|foo=bar|");
+               assertLines("[MySection]|foo=bar|", cm);
 
                assertEquals("", join(cm.getPreLines(""), '|'));
 
@@ -154,7 +154,7 @@ class ConfigMapTest extends SimpleTestBase {
                        "k2=v2"
                );
                ConfigMap cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#S1|[S1]|#k1|k1=v1|#S2|[S2]|#k2|k2=v2|");
+               assertLines("#S1|[S1]|#k1|k1=v1|#S2|[S2]|#k2|k2=v2|", cm);
 
                assertEquals("", join(cm.getPreLines(""), '|'));
                assertEquals("#S1", join(cm.getPreLines("S1"), '|'));
@@ -168,7 +168,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#S1|[S1]|#k1|k1=v1|#S2|[S2]|#k2|k2=v2|");
+               assertLines("#S1|[S1]|#k1|k1=v1|#S2|[S2]|#k2|k2=v2|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -186,7 +186,7 @@ class ConfigMapTest extends SimpleTestBase {
                        "k1=v1"
                );
                ConfigMap cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#D||#k|k=v|#S1|[S1]|#k1|k1=v1|");
+               assertLines("#D||#k|k=v|#S1|[S1]|#k1|k1=v1|", cm);
 
                assertEquals("#D", join(cm.getPreLines(""), '|'));
                assertEquals("#k", join(cm.getEntry("", "k").getPreLines(), 
'|'));
@@ -199,7 +199,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#D||#k|k=v|#S1|[S1]|#k1|k1=v1|");
+               assertLines("#D||#k|k=v|#S1|[S1]|#k1|k1=v1|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -229,7 +229,7 @@ class ConfigMapTest extends SimpleTestBase {
                        "k1=v1"
                );
                ConfigMap cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#Da|#Db||#ka||#kb||k=v||#S1a||#S1b||[S1]||#k1a||#k1b||k1=v1|");
+               
assertLines("#Da|#Db||#ka||#kb||k=v||#S1a||#S1b||[S1]||#k1a||#k1b||k1=v1|", cm);
 
                assertEquals("#Da|#Db", join(cm.getPreLines(""), '|'));
                assertEquals("#ka||#kb|", join(cm.getEntry("", 
"k").getPreLines(), '|'));
@@ -242,7 +242,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("#Da|#Db||#ka||#kb||k=v||#S1a||#S1b||[S1]||#k1a||#k1b||k1=v1|");
+               
assertLines("#Da|#Db||#ka||#kb||k=v||#S1a||#S1b||[S1]||#k1a||#k1b||k1=v1|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -290,7 +290,7 @@ class ConfigMapTest extends SimpleTestBase {
                assertEquals("", join(cm.getEntry("", "k1").getPreLines(), 
'|'));
                assertEquals("", join(cm.getEntry("", "k2").getPreLines(), 
'|'));
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k1 = 
v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|");
+               assertLines("k1 = v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|", 
cm);
 
                assertEquals("v1a,\nv1b,\nv1c", cm.getEntry("", 
"k1").getValue());
                assertEquals("v2a,\nv2b,\nv2c", cm.getEntry("", 
"k2").getValue());
@@ -298,7 +298,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k1 = 
v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|");
+               assertLines("k1 = v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|", 
cm);
        }
 
        @Test void testMultipleLinesWithSpacesAndComments() throws Exception {
@@ -321,7 +321,7 @@ class ConfigMapTest extends SimpleTestBase {
                assertEquals("|#k1|", join(cm.getEntry("", "k1").getPreLines(), 
'|'));
                assertEquals("|#k2|", join(cm.getEntry("", "k2").getPreLines(), 
'|'));
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("|#k1||k1 = 
v1a,|      v1b,|   v1c||#k2||k2 = v2a,|    v2b,|   v2c|");
+               assertLines("|#k1||k1 = v1a,|   v1b,|   v1c||#k2||k2 = v2a,|    
v2b,|   v2c|", cm);
 
                assertEquals("v1a,\nv1b,\nv1c", cm.getEntry("", 
"k1").getValue());
                assertEquals("v2a,\nv2b,\nv2c", cm.getEntry("", 
"k2").getValue());
@@ -329,7 +329,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("|#k1||k1 = 
v1a,|      v1b,|   v1c||#k2||k2 = v2a,|    v2b,|   v2c|");
+               assertLines("|#k1||k1 = v1a,|   v1b,|   v1c||#k2||k2 = v2a,|    
v2b,|   v2c|", cm);
        }
 
        @Test void testMultipleLinesInSection() throws Exception {
@@ -347,7 +347,7 @@ class ConfigMapTest extends SimpleTestBase {
                assertEquals("", join(cm.getEntry("S1", "k1").getPreLines(), 
'|'));
                assertEquals("", join(cm.getEntry("S1", "k2").getPreLines(), 
'|'));
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|");
+               assertLines("[S1]|k1 = v1a,|\tv1b,|\tv1c|k2 = 
v2a,|\tv2b,|\tv2c|", cm);
 
                assertEquals("v1a,\nv1b,\nv1c", cm.getEntry("S1", 
"k1").getValue());
                assertEquals("v2a,\nv2b,\nv2c", cm.getEntry("S1", 
"k2").getValue());
@@ -355,7 +355,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1a,|\tv1b,|\tv1c|k2 = v2a,|\tv2b,|\tv2c|");
+               assertLines("[S1]|k1 = v1a,|\tv1b,|\tv1c|k2 = 
v2a,|\tv2b,|\tv2c|", cm);
        }
 
        @Test void testMultipleLinesInSectionWithSpacesAndPrelines() throws 
Exception {
@@ -383,7 +383,7 @@ class ConfigMapTest extends SimpleTestBase {
                assertEquals("|#k1|", join(cm.getEntry("S1", 
"k1").getPreLines(), '|'));
                assertEquals("|#k2|", join(cm.getEntry("S1", 
"k2").getPreLines(), '|'));
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("|#S1||[S1]||#k1||k1 = v1a,|   v1b,|   v1c||#k2||k2 = v2a,|    v2b,|   
v2c|");
+               assertLines("|#S1||[S1]||#k1||k1 = v1a,|        v1b,|   
v1c||#k2||k2 = v2a,|    v2b,|   v2c|", cm);
 
                assertEquals("v1a,\nv1b,\nv1c", cm.getEntry("S1", 
"k1").getValue());
                assertEquals("v2a,\nv2b,\nv2c", cm.getEntry("S1", 
"k2").getValue());
@@ -391,7 +391,7 @@ class ConfigMapTest extends SimpleTestBase {
                // Round trip.
                s.update("A.cfg", cm.toString());
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("|#S1||[S1]||#k1||k1 = v1a,|   v1b,|   v1c||#k2||k2 = v2a,|    v2b,|   
v2c|");
+               assertLines("|#S1||[S1]||#k1||k1 = v1a,|        v1b,|   
v1c||#k2||k2 = v2a,|    v2b,|   v2c|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -404,22 +404,22 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = foo 
# comment|");
+               assertLines("[S1]|k1 = foo # comment|", cm);
                assertEquals("foo", cm.getEntry("S1", "k1").getValue());
                assertEquals("comment", cm.getEntry("S1", "k1").getComment());
 
                cm.setEntry("S1", "k1", null, null, "newcomment", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = foo 
# newcomment|");
+               assertLines("[S1]|k1 = foo # newcomment|", cm);
                assertEquals("foo", cm.getEntry("S1", "k1").getValue());
                assertEquals("newcomment", cm.getEntry("S1", 
"k1").getComment());
 
                cm.setEntry("S1", "k1", null, null, "", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
foo|");
+               assertLines("[S1]|k1 = foo|", cm);
                assertEquals("foo", cm.getEntry("S1", "k1").getValue());
                assertEquals("", cm.getEntry("S1", "k1").getComment());
 
                cm.setEntry("S1", "k1", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
foo|");
+               assertLines("[S1]|k1 = foo|", cm);
                assertEquals("foo", cm.getEntry("S1", "k1").getValue());
                assertEquals("", cm.getEntry("S1", "k1").getComment());
        }
@@ -431,7 +431,7 @@ class ConfigMapTest extends SimpleTestBase {
                        "k2 = foo # "
                );
                ConfigMap cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
foo#|k2 = foo # |");
+               assertLines("[S1]|k1 = foo#|k2 = foo # |", cm);
                assertEquals("", cm.getEntry("S1", "k1").getComment());
                assertEquals("", cm.getEntry("S1", "k2").getComment());
        }
@@ -444,7 +444,7 @@ class ConfigMapTest extends SimpleTestBase {
                        "k3 = foo \\# bar # real-comment"
                );
                ConfigMap cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
foo\\#bar|k2 = foo \\# bar|k3 = foo \\# bar # real-comment|");
+               assertLines("[S1]|k1 = foo\\#bar|k2 = foo \\# bar|k3 = foo \\# 
bar # real-comment|", cm);
 
                assertEquals(null, cm.getEntry("S1", "k1").getComment());
                assertEquals(null, cm.getEntry("S1", "k2").getComment());
@@ -466,14 +466,14 @@ class ConfigMapTest extends SimpleTestBase {
                cm.setEntry("S1", "k2", null, null, null, null);
                cm.setEntry("S1", "k3", "v3b", null, null, null);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1b|k2 = v2a|k3 = v3b|");
+               assertLines("[S1]|k1 = v1b|k2 = v2a|k3 = v3b|", cm);
 
                cm.commit();
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1b|k2 = v2a|k3 = v3b|");
+               assertLines("[S1]|k1 = v1b|k2 = v2a|k3 = v3b|", cm);
 
                // Round trip.
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1b|k2 = v2a|k3 = v3b|");
+               assertLines("[S1]|k1 = v1b|k2 = v2a|k3 = v3b|", cm);
        }
 
        @Test void testSettingEntriesWithPreLines() throws Exception {
@@ -498,14 +498,14 @@ class ConfigMapTest extends SimpleTestBase {
                cm.setEntry("S1", "k3", "v3b", null, null, null);
                cm.setEntry("S1", "k4", "v4b", null, null, 
Arrays.asList("","#k4",""));
 
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = v3b||#k4||k4 = v4b|");
+               assertLines("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = 
v3b||#k4||k4 = v4b|", cm);
 
                cm.commit();
-               assertString(s.read("A.cfg")).asReplaceAll("\\r?\\n", 
"|").is("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = v3b||#k4||k4 = v4b|");
+               assertLines("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = 
v3b||#k4||k4 = v4b|", s.read("A.cfg"));
 
                // Round trip.
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = v3b||#k4||k4 = v4b|");
+               assertLines("|#S1||[S1]||#k1||k1 = v1b||#k2||k2 = v2a|k3 = 
v3b||#k4||k4 = v4b|", cm);
        }
 
        @Test void testSettingEntriesWithNewlines() throws Exception {
@@ -515,16 +515,16 @@ class ConfigMapTest extends SimpleTestBase {
                cm.setEntry("", "k", "v1\nv2\nv3", null, null, null);
                cm.setEntry("S1", "k1", "v1\nv2\nv3", null, null, null);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1|       
v2|     v3|[S1]|k1 = v1|        v2|     v3|");
+               assertLines("k = v1|    v2|     v3|[S1]|k1 = v1|        v2|     
v3|", cm);
 
                assertEquals("v1\nv2\nv3", cm.getEntry("", "k").getValue());
                assertEquals("v1\nv2\nv3", cm.getEntry("S1", "k1").getValue());
                cm.commit();
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1|       
v2|     v3|[S1]|k1 = v1|        v2|     v3|");
+               assertLines("k = v1|    v2|     v3|[S1]|k1 = v1|        v2|     
v3|", cm);
 
                // Round trip.
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1|       
v2|     v3|[S1]|k1 = v1|        v2|     v3|");
+               assertLines("k = v1|    v2|     v3|[S1]|k1 = v1|        v2|     
v3|", cm);
        }
 
        @Test void testSettingEntriesWithNewlinesAndSpaces() throws Exception {
@@ -534,16 +534,16 @@ class ConfigMapTest extends SimpleTestBase {
                cm.setEntry("", "k", "v1 \n v2 \n v3", null, null, null);
                cm.setEntry("S1", "k1", "v1\t\n\tv2\t\n\tv3", null, null, null);
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1 |      
 v2 |    v3|[S1]|k1 = v1        |               v2      |               v3|");
+               assertLines("k = v1 |    v2 |    v3|[S1]|k1 = v1        |       
        v2      |               v3|", cm);
 
                assertEquals("v1 \n v2 \n v3", cm.getEntry("", "k").getValue());
                assertEquals("v1\t\n\tv2\t\n\tv3", cm.getEntry("S1", 
"k1").getValue());
                cm.commit();
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1 |      
 v2 |    v3|[S1]|k1 = v1        |               v2      |               v3|");
+               assertLines("k = v1 |    v2 |    v3|[S1]|k1 = v1        |       
        v2      |               v3|", cm);
 
                // Round trip.
                cm = s.getMap("A.cfg");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("k = v1 |      
 v2 |    v3|[S1]|k1 = v1        |               v2      |               v3|");
+               assertLines("k = v1 |    v2 |    v3|[S1]|k1 = v1        |       
        v2      |               v3|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -557,11 +557,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setSection("S1", Arrays.asList("#S1"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#S1|[S1]|k1 = 
v1|");
+               assertLines("#S1|[S1]|k1 = v1|", cm);
                cm.setSection("S1", Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setSection("S1", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetSectionOnDefaultSection() throws Exception {
@@ -572,11 +572,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setSection("", Arrays.asList("#D"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("#D||[S1]|k1 = 
v1|");
+               assertLines("#D||[S1]|k1 = v1|", cm);
                cm.setSection("", Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setSection("", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetSectionOnNewSection() throws Exception {
@@ -587,11 +587,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setSection("S2", Arrays.asList("#S2"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|#S2|[S2]|");
+               assertLines("[S1]|k1 = v1|#S2|[S2]|", cm);
                cm.setSection("S3", Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|#S2|[S2]|[S3]|");
+               assertLines("[S1]|k1 = v1|#S2|[S2]|[S3]|", cm);
                cm.setSection("S4", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|#S2|[S2]|[S3]|[S4]|");
+               assertLines("[S1]|k1 = v1|#S2|[S2]|[S3]|[S4]|", cm);
        }
 
        @Test void testSetSectionBadNames() throws Exception {
@@ -644,7 +644,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.removeSection("S1");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S2]|k2 = 
v2|");
+               assertLines("[S2]|k2 = v2|", cm);
        }
 
        @Test void testRemoveSectionOnNonExistingSection() throws Exception {
@@ -658,7 +658,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.removeSection("S3");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|k2 = v2|");
+               assertLines("[S1]|k1 = v1|[S2]|k2 = v2|", cm);
 
                assertThrowsWithMessage(IllegalArgumentException.class, 
"Invalid section name: 'null'", ()->cm.removeSection(null));
        }
@@ -675,7 +675,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.removeSection("");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|k2 = v2|");
+               assertLines("[S1]|k1 = v1|[S2]|k2 = v2|", cm);
        }
 
        @Test void testRemoveDefaultSectionWithComments() throws Exception {
@@ -693,7 +693,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.removeSection("");
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|k2 = v2|");
+               assertLines("[S1]|k1 = v1|[S2]|k2 = v2|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -707,11 +707,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, null, Arrays.asList("#k1"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|#k1|k1 = 
v1|");
+               assertLines("[S1]|#k1|k1 = v1|", cm);
                cm.setEntry("S1", "k1", null, null, null, 
Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setEntry("S1", "k1", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetPrelinesOnExistingEntryWithAtrributes() throws 
Exception {
@@ -723,7 +723,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, null, 
Arrays.asList("#k1b"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|#k1b|k1 
= v1 # comment|");
+               assertLines("[S1]|#k1b|k1 = v1 # comment|", cm);
        }
 
        @Test void testSetPrelinesOnNonExistingEntry() throws Exception {
@@ -734,18 +734,18 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k2", null, null, null, Arrays.asList("#k2"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setEntry("S1", "k2", null, null, null, 
Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setEntry("S1", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
 
                cm.setEntry("S2", "k2", null, null, null, Arrays.asList("#k2"));
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|");
+               assertLines("[S1]|k1 = v1|[S2]|", cm);
                cm.setEntry("S2", "k2", null, null, null, 
Collections.<String>emptyList());
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|");
+               assertLines("[S1]|k1 = v1|[S2]|", cm);
                cm.setEntry("S2", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|");
+               assertLines("[S1]|k1 = v1|[S2]|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -759,7 +759,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v2|");
+               assertLines("[S1]|k1 = v2|", cm);
        }
 
        @Test void testSetValueOnExistingEntryWithAttributes() throws Exception 
{
@@ -771,7 +771,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|#k1|k1 = 
v2 # comment|");
+               assertLines("[S1]|#k1|k1 = v2 # comment|", cm);
        }
 
        @Test void testSetValueToNullOnExistingEntry() throws Exception {
@@ -782,7 +782,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetValueOnNonExistingEntry() throws Exception {
@@ -793,11 +793,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k2", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = v2|");
+               assertLines("[S1]|k1 = v1|k2 = v2|", cm);
                cm.setEntry("S1", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = v2|");
+               assertLines("[S1]|k1 = v1|k2 = v2|", cm);
                cm.setEntry("S1", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = v2|");
+               assertLines("[S1]|k1 = v1|k2 = v2|", cm);
        }
 
        @Test void testSetValueOnNonExistingEntryOnNonExistentSection() throws 
Exception {
@@ -808,7 +808,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S2", "k2", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|k2 = v2|");
+               assertLines("[S1]|k1 = v1|[S2]|k2 = v2|", cm);
        }
 
        @Test void testSetValueInvalidSectionNames() throws Exception {
@@ -856,7 +856,7 @@ class ConfigMapTest extends SimpleTestBase {
 
                // If value has # in it, it should get escaped.
                cm.setEntry("S1", "k1", "v1 # foo", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = v1 
\\u0023 foo|");
+               assertLines("[S1]|k1 = v1 \\u0023 foo|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -870,15 +870,15 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, "c1", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = v1 
# c1|");
+               assertLines("[S1]|k1 = v1 # c1|", cm);
 
                cm.setEntry("S1", "k1", null, null, "", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.commit();
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
 
                cm.setEntry("S1", "k1", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetCommentOnExistingEntryWithAttributes() throws 
Exception {
@@ -890,7 +890,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, "c2", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|#k1a|k1 
= v1 # c2|");
+               assertLines("[S1]|#k1a|k1 = v1 # c2|", cm);
        }
 
        @Test void testSetCommentOnNonExistingEntry() throws Exception {
@@ -901,14 +901,14 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k2", null, null, "foo", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
                cm.setEntry("S1", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
 
                cm.setEntry("S2", "k2", null, null, "foo", null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|");
+               assertLines("[S1]|k1 = v1|[S2]|", cm);
                cm.setEntry("S2", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|");
+               assertLines("[S1]|k1 = v1|[S2]|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -922,13 +922,13 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v2|");
+               assertLines("[S1]|k1 = v2|", cm);
 
                cm.setEntry("S1", "k1", "v3", ENCODED, "c3", 
Arrays.asList("#k1a"));
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|#k1a|k1<*> = v3 # c3|");
+               assertLines("[S1]|#k1a|k1<*> = v3 # c3|", cm);
 
                cm.setEntry("S1", "k1", "v4", BASE64, "c4", 
Arrays.asList("#k1b"));
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|#k1b|k1<^> = v4 # c4|");
+               assertLines("[S1]|#k1b|k1<^> = v4 # c4|", cm);
        }
 
        @Test void testSetEntryOnExistingEntryWithAttributes() throws Exception 
{
@@ -940,13 +940,13 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|#k1|k1 = 
v2 # comment|");
+               assertLines("[S1]|#k1|k1 = v2 # comment|", cm);
 
                cm.setEntry("S1", "k1", "v3", ENCODED, "c3", 
Arrays.asList("#k1a"));
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|#k1a|k1<*> = v3 # c3|");
+               assertLines("[S1]|#k1a|k1<*> = v3 # c3|", cm);
 
                cm.setEntry("S1", "k1", "v4", BASE64, "c4", 
Arrays.asList("#k1b"));
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|#k1b|k1<^> = v4 # c4|");
+               assertLines("[S1]|#k1b|k1<^> = v4 # c4|", cm);
        }
 
        @Test void testSetEntryToNullOnExistingEntry() throws Exception {
@@ -957,7 +957,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k1", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|");
+               assertLines("[S1]|k1 = v1|", cm);
        }
 
        @Test void testSetEntryOnNonExistingEntry() throws Exception {
@@ -968,11 +968,11 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S1", "k2", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = v2|");
+               assertLines("[S1]|k1 = v1|k2 = v2|", cm);
                cm.setEntry("S1", "k2", null, null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = v2|");
+               assertLines("[S1]|k1 = v1|k2 = v2|", cm);
                cm.setEntry("S1", "k2", "", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|k2 = |");
+               assertLines("[S1]|k1 = v1|k2 = |", cm);
        }
 
        @Test void testSetEntryOnNonExistingEntryOnNonExistentSection() throws 
Exception {
@@ -983,7 +983,7 @@ class ConfigMapTest extends SimpleTestBase {
                ConfigMap cm = s.getMap("A.cfg");
 
                cm.setEntry("S2", "k2", "v2", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = 
v1|[S2]|k2 = v2|");
+               assertLines("[S1]|k1 = v1|[S2]|k2 = v2|", cm);
        }
 
        @Test void testSetEntryInvalidSectionNames() throws Exception {
@@ -1031,7 +1031,7 @@ class ConfigMapTest extends SimpleTestBase {
 
                // If value has # in it, it should get escaped.
                cm.setEntry("S1", "k1", "v1 # foo", null, null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1 = v1 
\\u0023 foo|");
+               assertLines("[S1]|k1 = v1 \\u0023 foo|", cm);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -1046,13 +1046,13 @@ class ConfigMapTest extends SimpleTestBase {
                );
                ConfigMap cm = s.getMap("A.cfg");
 
-               assertString(cm).asReplaceAll("\\r?\\n", "|").is("[S1]|k1<^> = 
v1|k2<*> = v2|k3<*^> = v3|");
+               assertLines("[S1]|k1<^> = v1|k2<*> = v2|k3<*^> = v3|", cm);
                assertEquals("^", cm.getEntry("S1", "k1").getModifiers());
                assertEquals("*", cm.getEntry("S1", "k2").getModifiers());
                assertEquals("*^", cm.getEntry("S1", "k3").getModifiers());
 
                cm.setEntry("S1", "k1", "v1", "#$%&*+^@~", null, null);
-               assertString(cm).asReplaceAll("\\r?\\n", 
"|").is("[S1]|k1<#$%&*+^@~> = v1|k2<*> = v2|k3<*^> = v3|");
+               assertLines("[S1]|k1<#$%&*+^@~> = v1|k2<*> = v2|k3<*^> = v3|", 
cm);
        }
 
        @Test void testInvalidModifier() throws Exception {
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 27e1041bf..b07170e73 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
@@ -94,7 +94,7 @@ class ConfigTest extends SimpleTestBase {
                assertEquals("6", c.get("S/b2").get());
                assertEquals("7", c.get("T/c1").get());
 
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("a1 = 2|a2 = 
3|a3 = 4|[S]|b1 = 5|b2 = 6|[T]|c1 = 7|");
+               assertLines("a1 = 2|a2 = 3|a3 = 4|[S]|b1 = 5|b2 = 6|[T]|c1 = 
7|", c);
        }
 
        
//====================================================================================================
@@ -135,7 +135,7 @@ class ConfigTest extends SimpleTestBase {
                assertEquals("6", c.get("S/b2").get());
                assertEquals("7", c.get("T/c1").get());
 
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("a1 = 2|a2 = 
3|a3 = 4|[S]|b1 = 5|b2 = 6|[T]|c1 = 7|");
+               assertLines("a1 = 2|a2 = 3|a3 = 4|[S]|b1 = 5|b2 = 6|[T]|c1 = 
7|", c);
        }
 
        
//====================================================================================================
@@ -174,11 +174,11 @@ class ConfigTest extends SimpleTestBase {
                c.set("S/b2", b, UonSerializer.DEFAULT, "*", "comment", 
Arrays.asList("#c1","#c2"));
                c.set("T/c1", b, UonSerializer.DEFAULT, "*", "comment", 
Arrays.asList("#c1","#c2"));
 
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#c1|#c2|a1<*> 
= {RhMWWFIFVksf} # comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} # comment|[S]|#c1|#c2|b1<*> = 
{RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = {RhMWWFIFVksf} # 
comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|");
+               assertLines("#c1|#c2|a1<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} 
# comment|[S]|#c1|#c2|b1<*> = {RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = 
{RhMWWFIFVksf} # comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|", c);
                c.commit();
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#c1|#c2|a1<*> 
= {RhMWWFIFVksf} # comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} # comment|[S]|#c1|#c2|b1<*> = 
{RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = {RhMWWFIFVksf} # 
comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|");
+               assertLines("#c1|#c2|a1<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} 
# comment|[S]|#c1|#c2|b1<*> = {RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = 
{RhMWWFIFVksf} # comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|", c);
                c = cb.build();
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#c1|#c2|a1<*> 
= {RhMWWFIFVksf} # comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} # comment|[S]|#c1|#c2|b1<*> = 
{RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = {RhMWWFIFVksf} # 
comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|");
+               assertLines("#c1|#c2|a1<*> = {RhMWWFIFVksf} # 
comment|#c1|#c2|a2<*> = {RhMWWFIFVksf} # comment|#c1|#c2|a3<*> = {RhMWWFIFVksf} 
# comment|[S]|#c1|#c2|b1<*> = {RhMWWFIFVksf} # comment|#c1|#c2|b2<*> = 
{RhMWWFIFVksf} # comment|[T]|#c1|#c2|c1<*> = {RhMWWFIFVksf} # comment|", c);
 
                assertEquals("(foo=bar)", c.get("a1").get());
                assertEquals("(foo=bar)", c.get("a2").get());
@@ -200,11 +200,11 @@ class ConfigTest extends SimpleTestBase {
                c.remove("S/b1");
                c.remove("T/c1");
 
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("[S]|");
+               assertLines("[S]|", c);
                c.commit();
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("[S]|");
+               assertLines("[S]|", c);
                c = cb.build();
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("[S]|");
+               assertLines("[S]|", c);
        }
 
        
//====================================================================================================
@@ -904,19 +904,19 @@ class ConfigTest extends SimpleTestBase {
                Config c = init();
 
                c.setSection("", Arrays.asList("#C1", "#C2"));
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C1|#C2||");
+               assertLines("#C1|#C2||", c);
 
                c.setSection("", Arrays.asList("#C3", "#C4"));
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C3|#C4||");
+               assertLines("#C3|#C4||", c);
 
                c.setSection("S1", Arrays.asList("", "#C5", "#C6"));
-               assertString(c).asReplaceAll("\\r?\\n", 
"|").is("#C3|#C4|||#C5|#C6|[S1]|");
+               assertLines("#C3|#C4|||#C5|#C6|[S1]|", c);
 
                c.setSection("S1", null);
-               assertString(c).asReplaceAll("\\r?\\n", 
"|").is("#C3|#C4|||#C5|#C6|[S1]|");
+               assertLines("#C3|#C4|||#C5|#C6|[S1]|", c);
 
                c.setSection("S1", Collections.<String>emptyList());
-               assertString(c).asReplaceAll("\\r?\\n", 
"|").is("#C3|#C4||[S1]|");
+               assertLines("#C3|#C4||[S1]|", c);
 
                assertThrowsWithMessage(IllegalArgumentException.class, 
"Argument 'section' cannot be null.", ()->c.setSection(null, Arrays.asList("", 
"#C5", "#C6")));
        }
@@ -929,19 +929,19 @@ class ConfigTest extends SimpleTestBase {
                JsonMap m = JsonMap.of("a", "b");
 
                c.setSection("", Arrays.asList("#C1", "#C2"), m);
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C1|#C2||a = 
b|");
+               assertLines("#C1|#C2||a = b|", c);
 
                c.setSection("", Arrays.asList("#C3", "#C4"), m);
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C3|#C4||a = 
b|");
+               assertLines("#C3|#C4||a = b|", c);
 
                c.setSection("S1", Arrays.asList("", "#C5", "#C6"), m);
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C3|#C4||a = 
b||#C5|#C6|[S1]|a = b|");
+               assertLines("#C3|#C4||a = b||#C5|#C6|[S1]|a = b|", c);
 
                c.setSection("S1", null, m);
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C3|#C4||a = 
b||#C5|#C6|[S1]|a = b|");
+               assertLines("#C3|#C4||a = b||#C5|#C6|[S1]|a = b|", c);
 
                c.setSection("S1", Collections.<String>emptyList(), m);
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("#C3|#C4||a = 
b|[S1]|a = b|");
+               assertLines("#C3|#C4||a = b|[S1]|a = b|", c);
 
                assertThrowsWithMessage(IllegalArgumentException.class, 
"Argument 'section' cannot be null.", ()->c.setSection(null, Arrays.asList("", 
"#C5", "#C6"), m));
        }
@@ -955,10 +955,10 @@ class ConfigTest extends SimpleTestBase {
                c.removeSection("S");
                c.removeSection("T");
 
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("a=1|");
+               assertLines("a=1|", c);
 
                c.removeSection("");
-               assertString(c).asReplaceAll("\\r?\\n", "|").is("");
+               assertLines("", c);
        }
 
        
//====================================================================================================
@@ -967,7 +967,7 @@ class ConfigTest extends SimpleTestBase {
        @Test void writeTo() throws Exception {
                Config c = init("a=1", "[S]", "b=2", "c=", "[T]");
 
-               assertString(c.writeTo(new 
StringWriter())).asReplaceAll("\\r?\\n", "|").is("a=1|[S]|b=2|c=|[T]|");
+               assertLines("a=1|[S]|b=2|c=|[T]|", c.writeTo(new 
StringWriter()));
        }
 
        
//====================================================================================================
@@ -1048,7 +1048,7 @@ class ConfigTest extends SimpleTestBase {
 
                cf.commit();
 
-               assertString(cf).asReplaceAll("\\r?\\n", "|").is("[s1]||foo<*> 
= {AwwJVhwUQFZEMg==}|");
+               assertLines("[s1]||foo<*> = {AwwJVhwUQFZEMg==}|", cf);
 
                assertEquals("mypassword", cf.get("s1/foo").get());
 
@@ -1061,7 +1061,7 @@ class ConfigTest extends SimpleTestBase {
                // INI output should be encoded
                StringWriter sw = new StringWriter();
                cf.writeTo(new PrintWriter(sw));
-               assertString(sw).asReplaceAll("\\r?\\n", "|").is("[s1]|foo<*> = 
{AwwJVhwUQFZEMg==}|");
+               assertLines("[s1]|foo<*> = {AwwJVhwUQFZEMg==}|", sw);
        }
 
        
//====================================================================================================
@@ -1074,7 +1074,7 @@ class ConfigTest extends SimpleTestBase {
 
                cf.applyMods();
                cf.commit();
-               
assertString(MemoryStore.DEFAULT.read("Test.cfg")).asReplaceAll("\\r?\\n", 
"|").is("[s1]||foo<*> = {AwwJVhwUQFZEMg==}|");
+               assertLines("[s1]||foo<*> = {AwwJVhwUQFZEMg==}|", 
MemoryStore.DEFAULT.read("Test.cfg"));
        }
 
        
//====================================================================================================
@@ -1170,7 +1170,7 @@ class ConfigTest extends SimpleTestBase {
 
                StringWriter sw = new StringWriter();
                cf.writeTo(sw);
-               assertString(sw).asReplaceAll("\\r?\\n", "|").is("[s1]|f1 = x 
|\ty |\tz|");
+               assertLines("[s1]|f1 = x |\ty |\tz|", sw);
        }
 
        
//====================================================================================================
@@ -1382,7 +1382,7 @@ class ConfigTest extends SimpleTestBase {
 
                StringWriter sw = new StringWriter();
                cf.writeTo(sw);
-               assertString(sw).asReplaceAll("\\r?\\n", "|").is("a = b|");
+               assertLines("a = b|", sw);
        }
 
 
@@ -1468,15 +1468,15 @@ class ConfigTest extends SimpleTestBase {
                cf.set("a", "a,#b,=c");
                cf.set("A/a", "a,#b,=c");
 
-               assertString(cf).asReplaceAll("\\r?\\n", "|").is("a = 
a,\\u0023b,=c|[A]|a = a,\\u0023b,=c|");
+               assertLines("a = a,\\u0023b,=c|[A]|a = a,\\u0023b,=c|", cf);
                cf.commit();
-               assertString(cf).asReplaceAll("\\r?\\n", "|").is("a = 
a,\\u0023b,=c|[A]|a = a,\\u0023b,=c|");
+               assertLines("a = a,\\u0023b,=c|[A]|a = a,\\u0023b,=c|", cf);
 
                assertEquals("a,#b,=c", cf.get("a").get());
                assertEquals("a,#b,=c", cf.get("A/a").get());
 
                cf.set("a", "a,#b,=c", null, null, "comment#comment", null);
-               assertString(cf).asReplaceAll("\\r?\\n", "|").is("a = 
a,\\u0023b,=c # comment#comment|[A]|a = a,\\u0023b,=c|");
+               assertLines("a = a,\\u0023b,=c # comment#comment|[A]|a = 
a,\\u0023b,=c|", cf);
                assertEquals("a,#b,=c", cf.get("a").get());
        }
 
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 400c816fa..3e8f85d51 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
@@ -470,7 +470,7 @@ class BeanStore_Test extends SimpleTestBase {
                b2p.add(A2.class, a2a, null);
                for (BeanStore b : array(b1p, b1c, b2p, b2c)) {
                        for (ExecutableInfo e : array(c1, c2)) {
-                               assertString(b.getMissingParams(e)).isEmpty();
+                               assertNull(b.getMissingParams(e));
                                assertTrue(b.hasAllParams(e));
                        }
                        assertArray(b.getParams(c1), pThis, pA1a, pA2a, 
pIsBeanStore);
@@ -735,7 +735,7 @@ class BeanStore_Test extends SimpleTestBase {
                assertString("X", 
b1c.createMethodFinder(String.class).withDefault("X").run());
                assertString("X", 
b1c.createMethodFinder(String.class).withDefault(()->"X").run());
 
-               b1c.createMethodFinder(String.class).withDefault("X").run(y -> 
assertString(y).is("X"));
+               b1c.createMethodFinder(String.class).withDefault("X").run(y -> 
assertString("X", y));
        }
 
        // Bean matching.
@@ -767,7 +767,7 @@ class BeanStore_Test extends SimpleTestBase {
                assertString("X", 
b1c.createMethodFinder(String.class).withDefault("X").run());
                assertString("X", 
b1c.createMethodFinder(String.class).withDefault(()->"X").run());
 
-               b1c.createMethodFinder(String.class).withDefault("X").run(y -> 
assertString(y).is("X"));
+               b1c.createMethodFinder(String.class).withDefault("X").run(y -> 
assertString("X", y));
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/MediaType_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/MediaType_Test.java
index b48264663..183ce0121 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/MediaType_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/MediaType_Test.java
@@ -29,7 +29,7 @@ public class MediaType_Test extends SimpleTestBase {
                assertJson(x, "['text/bar','text/foo']");
 
                MediaType x2 = new MediaType((String)null);  // Interpreted as 
"/*"
-               assertString(x2.getType()).isEmpty();
+               assertStringEmpty(x2.getType());
                assertEquals("*", x2.getSubType());
                assertJson(x2.getSubTypes(), "['*']");
                assertTrue(x2.isMetaSubtype());
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/http/StringRanges_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/http/StringRanges_Test.java
index bc50dbb7c..64a6d0037 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/http/StringRanges_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/http/StringRanges_Test.java
@@ -40,7 +40,7 @@ class StringRanges_Test extends SimpleTestBase {
        }
 
        @Test void a02_getRange() {
-               assertString(of("foo").getRange(0)).isNotNull();
+               assertNotNull(of("foo").getRange(0));
                assertNull(of((String)null).getRange(0));
                assertNull(of("").getRange(0));
                assertNull(of((String)null).getRange(-1));

Reply via email to