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>