@@ -158,7 +158,7 @@ public void describedFieldThatIsNotPresentNestedBeneathOptionalArrayThatIsEmptyI
158
158
}
159
159
160
160
@ Test
161
- public void describedFieldThatIsSometimesPresentChildOfOptionalArrayIsNotConsideredMissing () {
161
+ public void describedSometimesPresentFieldThatIsChildOfSometimesPresentOptionalArrayIsNotConsideredMissing () {
162
162
List <FieldDescriptor > missingFields = new JsonContentHandler (
163
163
"{\" a\" :[ {\" b\" : \" bravo\" }, {\" b\" : \" bravo\" , \" c\" : { \" d\" : \" delta\" }}]}"
164
164
.getBytes ()).findMissingFields (
@@ -167,4 +167,25 @@ public void describedFieldThatIsSometimesPresentChildOfOptionalArrayIsNotConside
167
167
assertThat (missingFields .size (), is (equalTo (0 )));
168
168
}
169
169
170
+ @ Test
171
+ public void describedMissingFieldThatIsChildOfNestedOptionalArrayThatIsEmptyIsNotConsideredMissing () {
172
+ List <FieldDescriptor > missingFields = new JsonContentHandler (
173
+ "{\" a\" :[{\" b\" :[]}]}" .getBytes ()).findMissingFields (
174
+ Arrays .asList (new FieldDescriptor ("a.[].b" ).optional (),
175
+ new FieldDescriptor ("a.[].b.[]" ).optional (),
176
+ new FieldDescriptor ("a.[].b.[].c" )));
177
+ assertThat (missingFields .size (), is (equalTo (0 )));
178
+ }
179
+
180
+ @ Test
181
+ public void describedMissingFieldThatIsChildOfNestedOptionalArrayThatContainsAnObjectIsConsideredMissing () {
182
+ List <FieldDescriptor > missingFields = new JsonContentHandler (
183
+ "{\" a\" :[{\" b\" :[{}]}]}" .getBytes ()).findMissingFields (
184
+ Arrays .asList (new FieldDescriptor ("a.[].b" ).optional (),
185
+ new FieldDescriptor ("a.[].b.[]" ).optional (),
186
+ new FieldDescriptor ("a.[].b.[].c" )));
187
+ assertThat (missingFields .size (), is (equalTo (1 )));
188
+ assertThat (missingFields .get (0 ).getPath (), is (equalTo ("a.[].b.[].c" )));
189
+ }
190
+
170
191
}
0 commit comments