@Test void intValueShouldFailIfDoesNotMatch() { assertThatThrownBy(() -> assertThatJson("{\"test\":1}").node("test").matches(equalTo(valueOf(2)))) .hasMessage("Node \"test\" does not match.\nExpected: <2>\n but: was <1>"); }
@Test void floatValueShouldFailIfDoesNotMatch() { assertThatThrownBy(() -> assertThatJson("{\"test\":1}").node("test").matches(equalTo(valueOf(2)))) .hasMessage("Node \"test\" does not match.\nExpected: <2>\n but: was <1>"); }
@Test void nullValueShouldFailIfDoesNotMatch() { assertThatThrownBy(() -> assertThatJson("{\"test\":\"one\"}").node("test").matches(equalTo(nullValue()))) .hasMessage("Node \"test\" does not match.\nExpected: <null>\n but: was \"one\""); }
@Test void arraySizeShouldMatch() { assertThatJson("{\"test\":[1,2,3]}").node("test").matches(hasSize(3)); }
@Test void stringValueShouldMatch() { assertThatJson("{\"test\":\"one\"}").node("test").matches(equalTo("one")); }
@Test void booleanValueShouldMatch() { assertThatJson("{\"test\":true}").node("test").matches(equalTo(true)); }
@Test void floatValueShouldMatch() { assertThatJson("{\"test\":1.10001}").node("test").matches(closeTo(valueOf(1.1), valueOf(0.001))); }
@Test void arrayShouldMatch() { assertThatJson("{\"test\":[1,2,3]}").node("test").matches(hasItem(valueOf(1))); }
@Test void objectShouldMatch() { assertThatJson("{\"test\":[{\"value\":1},{\"value\":2},{\"value\":3}]}").node("test").matches(everyItem(jsonPartMatches("value", lessThanOrEqualTo(valueOf(4))))); }
@Test void nullValueShouldMatch() { assertThatJson("{\"test\":null}").node("test").matches(nullValue()); }
@Test void arrayContainsShouldMatch() { assertThatJson("[{\"a\": 7},8]").matches(hasItem(jsonEquals("{\"a\": 7}"))); }
@Test void intValueShouldMatch() { assertThatJson("{\"test\":1}").node("test").matches(equalTo(valueOf(1))); }
@Test void missingValueShouldFail() { assertThatThrownBy(() -> assertThatJson("{\"test2\":true}").node("test").matches(equalTo(false))) .hasMessage("Different value found in node \"test\", expected: <node to be present> but was: <missing>."); }
@Test void objectMatcherShouldFailIfNotFound() { assertThatThrownBy(() -> assertThatJson("{\"test\":[{\"value\":1},{\"value\":2},{\"value\":3}]}").node("test").matches(hasItem(jsonPartEquals("value", 4)))) .hasMessage("Node \"test\" does not match.\n" + "Expected: a collection containing 4 in \"value\"\n" + " but: JSON documents are different:\n" + "Different value found in node \"value\", expected <4> but was <1>.\n" + ", JSON documents are different:\n" + "Different value found in node \"value\", expected <4> but was <2>.\n" + ", JSON documents are different:\n" + "Different value found in node \"value\", expected <4> but was <3>.\n"); }
@Test void arrayMatcherShouldFailIfNotFound() { assertThatThrownBy(() -> assertThatJson("{\"test\":[1,2,3]}").node("test").matches(hasItem(4))) .hasMessage("Node \"test\" does not match.\nExpected: a collection containing <4>\n" + " but: was <1>, was <2>, was <3>"); }
@Test void booleanValueShouldFailIfDoesNotMatch() { assertThatThrownBy(() -> assertThatJson("{\"test2\":true}").node("test2").matches(equalTo(false))) .hasMessage("Node \"test2\" does not match.\nExpected: <false>\n but: was <true>"); }
@Test void objectShouldMatchToMap() { assertThatJson("{\"test\":[{\"value\":1},{\"value\":2},{\"value\":3}]}").node("test").matches(hasItem(hasEntry("value", valueOf(1)))); }
@Test void stringValueShouldFailIfDoesNotMatch() { assertThatThrownBy(() -> assertThatJson("{\"test\":\"one\"}").node("test").matches(equalTo("two"))) .hasMessage("Node \"test\" does not match.\nExpected: \"two\"\n but: was \"one\""); }