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 8963d1041..f9882863f 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 6066160ee..9f35c3f6c 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\"}}";