Merge branch '1.2.x'

This commit is contained in:
Andy Wilkinson
2018-06-26 12:14:56 +01:00
2 changed files with 13 additions and 0 deletions

View File

@@ -81,6 +81,9 @@ class JsonContentHandler implements ContentHandler {
}
private boolean isMissing(FieldDescriptor candidate, Object payload) {
if (!this.fieldProcessor.hasField(candidate.getPath(), payload)) {
return true;
}
try {
ExtractedField extracted = this.fieldProcessor.extract(candidate.getPath(),
payload);

View File

@@ -157,4 +157,14 @@ public class JsonContentHandlerTests {
assertThat(missingFields.size(), is(equalTo(0)));
}
@Test
public void describedFieldThatIsSometimesPresentChildOfOptionalArrayIsNotConsideredMissing() {
List<FieldDescriptor> missingFields = new JsonContentHandler(
"{\"a\":[ {\"b\": \"bravo\"}, {\"b\": \"bravo\", \"c\": { \"d\": \"delta\"}}]}"
.getBytes()).findMissingFields(
Arrays.asList(new FieldDescriptor("a.[].c").optional(),
new FieldDescriptor("a.[].c.d]")));
assertThat(missingFields.size(), is(equalTo(0)));
}
}