From 75d68ef1852ade004e93ca42d676f4b996631974 Mon Sep 17 00:00:00 2001 From: Lukas Krecan Date: Wed, 14 Oct 2020 08:32:17 +0200 Subject: [PATCH] #290 Expression builder test --- .../test/base/AbstractAssertJTest.java | 9 ++++++- .../jsonunit/test/base/RegexBuilder.java | 26 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/RegexBuilder.java diff --git a/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/AbstractAssertJTest.java b/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/AbstractAssertJTest.java index 4733e259b..569442283 100644 --- a/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/AbstractAssertJTest.java +++ b/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/AbstractAssertJTest.java @@ -47,6 +47,7 @@ import static net.javacrumbs.jsonunit.core.Option.IGNORING_VALUES; import static net.javacrumbs.jsonunit.core.Option.TREATING_NULL_AS_ABSENT; import static net.javacrumbs.jsonunit.core.internal.JsonUtils.jsonSource; +import static net.javacrumbs.jsonunit.test.base.RegexBuilder.regex; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -705,7 +706,13 @@ void testAssertPathArray() { @Test void testLongRegexp() { assertThatJson("{\"test\": \"This is some text followed by: ABCD, followed by this\"}") - .isEqualTo("{\"test\": \"${json-unit.regex}\\\\QThis is some text followed by: \\\\E[A-Z]+\\\\Q, followed by this\\\\E\"}"); + .isEqualTo("{\"test\": \"${json-unit.regex}^\\\\QThis is some text followed by: \\\\E[A-Z]+\\\\Q, followed by this\\\\E$\"}"); + } + + @Test + void testLongRegexpBuilder() { + assertThatJson("{\"test\": \"This is some text followed by: ABCD, followed by this\"}") + .isEqualTo("{\"test\": " + regex().str("This is some text followed by: ").exp("[A-Z]+").str(", followed by this") + "}"); } @Test diff --git a/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/RegexBuilder.java b/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/RegexBuilder.java new file mode 100644 index 000000000..590ad0d7a --- /dev/null +++ b/tests/test-base/src/main/java/net/javacrumbs/jsonunit/test/base/RegexBuilder.java @@ -0,0 +1,26 @@ +package net.javacrumbs.jsonunit.test.base; + +public class RegexBuilder { + private final String expression; + + private RegexBuilder(String expression) { + this.expression = expression; + } + + static RegexBuilder regex() { + return new RegexBuilder("\"${json-unit.regex}^"); + } + + RegexBuilder str(String staticString) { + return new RegexBuilder(expression + "\\\\Q" + staticString + "\\\\E"); + } + + RegexBuilder exp(String regex) { + return new RegexBuilder(expression + regex); + } + + public String toString() { + return expression + "$\""; + } + +}