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 e9ab57d  Tests.
e9ab57d is described below

commit e9ab57d0c2332f59484b4eb3e71d55e3c4601da4
Author: JamesBognar <[email protected]>
AuthorDate: Thu Jun 25 16:21:08 2020 -0400

    Tests.
---
 .../java/org/apache/juneau/ComboRoundTripTest.java | 14 +++---
 .../java/org/apache/juneau/ComboSerializeTest.java |  7 +--
 .../juneau/serializer/UriResolutionTest.java       |  7 +--
 .../org/apache/juneau/testutils/TestUtils.java     | 17 -------
 .../juneau/assertions/FluentStringAssertion.java   | 52 ++++++++++++++++++++++
 5 files changed, 68 insertions(+), 29 deletions(-)

diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java
index dac33e8..ad88e5a 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboRoundTripTest.java
@@ -105,9 +105,10 @@ public abstract class ComboRoundTripTest {
                                System.out.println(r);
                        }
 
-                       if (isRdf)
-                               TestUtils.assertEqualsAfterSort(expected, r, 
"{0}/{1} parse-normal failed", comboInput.label, testName);
-                       else
+                       if (isRdf) {
+                               Object[] args = { comboInput.label, testName };
+                               assertString(r).msg("{0}/{1} parse-normal 
failed", args).equalsAfterSort(expected);
+                       } else
                                assertString(r).msg("{0}/{1} parse-normal 
failed", comboInput.label, testName).is(expected);
 
                } catch (AssertionError e) {
@@ -148,9 +149,10 @@ public abstract class ComboRoundTripTest {
                        if (isRdf)
                                r = r.replaceAll("<rdf:RDF[^>]*>", 
"<rdf:RDF>").replace('"', '\'');
 
-                       if (isRdf)
-                               TestUtils.assertEqualsAfterSort(expected, r, 
"{0}/{1} parse-normal failed", comboInput.label, testName);
-                       else
+                       if (isRdf) {
+                               Object[] args = { comboInput.label, testName };
+                               assertString(r).msg("{0}/{1} parse-normal 
failed", args).equalsAfterSort(expected);
+                       } else
                                assertString(r).msg("{0}/{1} parse-normal 
failed", comboInput.label, testName).is(expected);
 
                } catch (AssertionError e) {
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java
index 4db4a0f..4290aca 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/ComboSerializeTest.java
@@ -95,9 +95,10 @@ public abstract class ComboSerializeTest {
                                }
                        }
 
-                       if (isRdf)
-                               TestUtils.assertEqualsAfterSort(expected, r, 
"{0}/{1} serialize-normal failed", comboInput.label, testName);
-                       else
+                       if (isRdf) {
+                               Object[] args = { comboInput.label, testName };
+                               assertString(r).msg("{0}/{1} serialize-normal 
failed", args).equalsAfterSort(expected);
+                       } else
                                assertString(r).msg("{0}/{1} parse-normal 
failed", comboInput.label, testName).is(expected);
 
                } catch (AssertionError e) {
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
index aaac012..9defdc0 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/serializer/UriResolutionTest.java
@@ -565,9 +565,10 @@ public class UriResolutionTest {
                                System.out.println(r);
                        }
 
-                       if (isRdf)
-                               TestUtils.assertEqualsAfterSort(expected, r, 
"{0}/{1} serialize-normal failed", label, s.getClass().getSimpleName());
-                       else
+                       if (isRdf) {
+                               Object[] args = { label, 
s.getClass().getSimpleName() };
+                               assertString(r).msg("{0}/{1} serialize-normal 
failed", args).equalsAfterSort(expected);
+                       } else
                                assertString(r).msg("{0}/{1} serialize-normal 
failed", label, s.getClass().getSimpleName()).is(expected);
 
                } catch (AssertionError e) {
diff --git 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java
 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java
index 8eea987..c2fa556 100644
--- 
a/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java
+++ 
b/juneau-core/juneau-core-utest/src/test/java/org/apache/juneau/testutils/TestUtils.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.testutils;
 
-import static org.apache.juneau.internal.StringUtils.*;
-
 import java.io.*;
 import java.lang.reflect.*;
 import java.util.*;
@@ -277,21 +275,6 @@ public class TestUtils {
                Locale.setDefault(systemLocale.get());
        }
 
-       public static final void assertEqualsAfterSort(String expected, String 
actual, String msg, Object...args) {
-               // Must work for windows too.
-               String[] e = expected.trim().split("[\r\n]+"), a = 
actual.trim().split("[\r\n]+");
-
-               if (e.length != a.length)
-                       throw new ComparisonFailure(format(msg, args), 
expected, actual);
-
-               Arrays.sort(e);
-               Arrays.sort(a);
-
-               for (int i = 0; i < e.length; i++)
-                       if (! e[i].equals(a[i]))
-                               throw new ComparisonFailure(format(msg, args), 
expected, actual);
-       }
-
        /**
         * Creates a ClassMeta for the given types.
         */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
index db4eb29..442c431 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/assertions/FluentStringAssertion.java
@@ -14,6 +14,7 @@ package org.apache.juneau.assertions;
 
 import static org.apache.juneau.internal.StringUtils.*;
 
+import java.util.*;
 import java.util.function.*;
 import java.util.regex.*;
 
@@ -134,6 +135,57 @@ public class FluentStringAssertion<R> extends 
FluentAssertion<R> {
        }
 
        /**
+        * Asserts that the text equals the specified value after splitting 
both by newlines and sorting the rows.
+        *
+        * <h5 class='section'>Example:</h5>
+        * <p class='bcode w800'>
+        *      <jc>// Validates the response body of an HTTP call is the text 
"OK".</jc>
+        *      client
+        *              .get(<jsf>URL</jsf>)
+        *              .run()
+        *              .assertBody().equalsAfterSort(<js>"OK"</js>);
+        * </p>
+        *
+        * <p>
+        * Multiple values can be passed in to represent multiple lines of 
output like so:
+        *
+        * <p class='bcode w800'>
+        *      <jc>// Validates the response body of an HTTP call is the text 
"OK".</jc>
+        *      client
+        *              .get(<jsf>URL</jsf>)
+        *              .run()
+        *              .assertBody().equalsAfterSort(
+        *                      <js>"Line 1"</js>,
+        *                      <js>"Line 2"</js>,
+        *                      <js>"Line 3"</js>
+        *              );
+        * </p>
+        *
+        * @param expected
+        *      The value to check against.
+        *      <br>If multiple values are specified, they are concatenated 
with newlines.
+        * @return The response object (for method chaining).
+        * @throws AssertionError If assertion failed.
+        */
+       public R equalsAfterSort(String...expected) {
+               exists();
+               // Must work for windows too.
+               String[] e = StringUtils.join(expected, 
'\n').trim().split("[\r\n]+"), a = this.text.trim().split("[\r\n]+");
+
+               if (e.length != a.length)
+                       throw error("Expected text had different numbers of 
lines.\n\tExpected=[{0}]\n\tActual={1}]", e.length, a.length);
+
+               Arrays.sort(e);
+               Arrays.sort(a);
+
+               for (int i = 0; i < e.length; i++)
+                       if (! e[i].equals(a[i]))
+                               throw error("Expected text had different values 
at line {0}.\n\tExpected=[{1}]\n\tActual=[{2}]", i, e[i], a[i]);
+
+               return returns();
+       }
+
+       /**
         * Asserts that the text equals the specified value.
         *
         * <p>

Reply via email to