Merge branch '1.2.x'
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user