@Test void shouldReportMissingArrayItemsWhenIgnoringOrder() { assertThatThrownBy(() -> assertThatJson("{\"test\":[1]}").node("test").when(IGNORING_ARRAY_ORDER).isEqualTo("[1, 2, 3]")) .hasMessage("JSON documents are different:\n" + "Array \"test\" has different length, expected: <3> but was: <1>.\n" + "Array \"test\" has different content. Missing values: [2, 3], extra values: [], expected: <[1,2,3]> but was: <[1]>\n"); }
@Test void isPresentShouldTreatNullAsAbsentWhenSpecified() { assertThatThrownBy(() -> assertThatJson("{\"test1\":2, \"test2\":null}").when(TREATING_NULL_AS_ABSENT).node("test2").isPresent()) .hasMessage("Different value found in node \"test2\", expected: <node to be present> but was: <missing>."); }
@Test void shouldReportExtraArrayItemsWhenIgnoringOrder() { assertThatThrownBy(() -> assertThatJson("{\"test\":[1,2,3]}").node("test").when(IGNORING_ARRAY_ORDER).isEqualTo("[1]")) .hasMessage("JSON documents are different:\n" + "Array \"test\" has different length, expected: <1> but was: <3>.\n" + "Array \"test\" has different content. Missing values: [], extra values: [2, 3], expected: <[1]> but was: <[1,2,3]>\n"); }
@Test void testTreatNullAsAbsent() { assertThatJson("{\"test\":{\"a\":1, \"b\": null}}").when(TREATING_NULL_AS_ABSENT).isEqualTo("{\"test\":{\"a\":1}}"); }
@Test void shouldTreatNullAsAbsent() { assertThatJson("{\"a\":1, \"b\": null}").when(Option.TREATING_NULL_AS_ABSENT).node("b").isAbsent(); }
@Test void shouldIgnoreExtraFields() { assertThatJson("{\"test\":{\"a\":1, \"b\":2, \"c\":3}}").when(IGNORING_EXTRA_FIELDS).isEqualTo("{\"test\":{\"b\":2}}"); }
@Test void testArrayShouldMatchRegardlessOfOrder() { final String actual = "{\"response\":[{\"attributes\":null,\"empolyees\":[{\"dob\":\"1987-03-21\",\"firstName\":\"Joe\",\"lastName\":\"Doe\"},{\"dob\":\"1986-02-12\",\"firstName\":\"Jason\",\"lastName\":\"Kowalski\"},{\"dob\":\"1985-01-11\",\"firstName\":\"Kate\",\"lastName\":\"Smith\"}],\"id\":123}]}"; final String expected = "{\"response\":[{\"attributes\":null,\"empolyees\":[{\"dob\":\"1985-01-11\",\"firstName\":\"Kate\",\"lastName\":\"Smith\"},{\"dob\":\"1986-02-12\",\"firstName\":\"Jason\",\"lastName\":\"Kowalski\"},{\"dob\":\"1987-03-21\",\"firstName\":\"Joe\",\"lastName\":\"Doe\"}],\"id\":123}]}"; assertThatJson(actual).when(Option.IGNORING_ARRAY_ORDER).isEqualTo(expected); }