From 5f946bd7d19a5e694e462cbfcae41799f5e4bdff Mon Sep 17 00:00:00 2001 From: Lukas Krecan Date: Tue, 15 Feb 2022 20:24:49 +0100 Subject: [PATCH] #474 Fix JsonListAssert.elments --- .../javacrumbs/jsonunit/assertj/JsonListAssert.java | 6 ++++++ .../jsonunit/test/base/AbstractAssertJTest.java | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/json-unit-assertj/src/main/java/net/javacrumbs/jsonunit/assertj/JsonListAssert.java b/json-unit-assertj/src/main/java/net/javacrumbs/jsonunit/assertj/JsonListAssert.java index 8963d104..f9882863 100644 --- a/json-unit-assertj/src/main/java/net/javacrumbs/jsonunit/assertj/JsonListAssert.java +++ b/json-unit-assertj/src/main/java/net/javacrumbs/jsonunit/assertj/JsonListAssert.java @@ -26,6 +26,7 @@ import java.util.List; import static net.javacrumbs.jsonunit.core.internal.JsonUtils.wrapDeserializedObject; +import static org.assertj.core.util.Lists.newArrayList; public class JsonListAssert extends FactoryBasedNavigableListAssert, Object, JsonAssert> { private final Configuration configuration; @@ -59,6 +60,11 @@ public JsonListAssert isNotEqualTo(@Nullable Object other) { return this; } + @Override + protected JsonListAssert newAbstractIterableAssert(Iterable iterable) { + return new JsonListAssert(newArrayList(iterable), path, configuration); + } + @NotNull private Diff createDiff(Object other) { return Diff.create(other, wrapDeserializedObject(actual), "fullJson", path, configuration); 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 6066160e..9f35c3f6 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 @@ -1651,6 +1651,17 @@ void assertSame() { assertThatJson(s).isEqualTo(s); } + @Test + void testArrayElements() { + String json = "[ [ \"a\", \"b\", \"c\", \"d\"," + + " \"e\", \"f\", \"g\", \"h\", \"i\" ] ]"; + + assertThatJson(json).inPath("$.[0]") + .isArray() + .elements(3 /* d */, 4 /* e */, 5 /* f */ , 6 /* g */, 7 /* h */, 8 /* i */ ) + .containsExactly("d", "e", "f", "g", "h", "i"); + } + @Test void testInnerString() { String json = "{\"myNode\":{\"inner\":\"foo\"}}";