@@ -1433,6 +1433,68 @@ public void partiallyIntersectingPointersHaveNoEffectInFieldSelector() {
1433
1433
assertThat (actual ).isEqualTo (underTest .remove ("x" ));
1434
1434
}
1435
1435
1436
+ @ Test
1437
+ public void nestedObjectsInsideArraysAreSelectedWhenSelectingViaFieldSelector () {
1438
+ final JsonObject underTest = JsonObject .newBuilder ()
1439
+ .set ("some" , JsonObject .newBuilder ()
1440
+ .set ("nested" , JsonArray .newBuilder ()
1441
+ .add (JsonObject .newBuilder ()
1442
+ .set ("a" , 1 )
1443
+ .set ("b" , 2 )
1444
+ .set ("c" , 3 )
1445
+ .build ()
1446
+ )
1447
+ .add (JsonObject .newBuilder ()
1448
+ .set ("a" , 11 )
1449
+ .set ("b" , 22 )
1450
+ .set ("c" , 33 )
1451
+ .build ()
1452
+ )
1453
+ .build ())
1454
+ .build ()
1455
+ )
1456
+ .set ("other" , "foo" )
1457
+ .build ();
1458
+
1459
+ final JsonFieldSelector selectorSelectingArray =
1460
+ JsonFieldSelector .newInstance ("some/nested/b" );
1461
+ final JsonObject actual = underTest .get (selectorSelectingArray );
1462
+
1463
+ final JsonObject expected = JsonObject .newBuilder ()
1464
+ .set ("some" , JsonObject .newBuilder ()
1465
+ .set ("nested" , JsonArray .newBuilder ()
1466
+ .add (JsonObject .newBuilder ()
1467
+ .set ("b" , 2 )
1468
+ .build ()
1469
+ )
1470
+ .add (JsonObject .newBuilder ()
1471
+ .set ("b" , 22 )
1472
+ .build ()
1473
+ )
1474
+ .build ())
1475
+ .build ()
1476
+ )
1477
+ .build ();
1478
+ assertThat (actual ).isEqualTo (expected );
1479
+ }
1480
+
1481
+ @ Test
1482
+ public void simpleArraysArePreservedWhenSelectingViaFieldSelector () {
1483
+ final JsonObject underTest = JsonObject .newBuilder ()
1484
+ .set ("some" , JsonObject .newBuilder ()
1485
+ .set ("nested" , JsonArray .newBuilder ()
1486
+ .add (1 , 2 , 3 )
1487
+ .build ())
1488
+ .build ()
1489
+ )
1490
+ .set ("other" , "foo" )
1491
+ .build ();
1492
+ final JsonFieldSelector selectorSelectingArray =
1493
+ JsonFieldSelector .newInstance ("some/nested" );
1494
+ final JsonObject actual = underTest .get (selectorSelectingArray );
1495
+ assertThat (actual ).isEqualTo (underTest .remove ("other" ));
1496
+ }
1497
+
1436
1498
@ Test
1437
1499
public void jsonObjectsNestedInArraysShouldCompareWithoutFieldDefinitions () {
1438
1500
final JsonObject objectWithoutDefinition =
0 commit comments