@@ -738,6 +738,22 @@ public void testTransformInPlace() {
738
738
assertEquals (expected , transformedMapped );
739
739
}
740
740
741
+ public void testTransformSharedPaths () {
742
+ Map <String , Object > mapToTransform = MapBuilder .<String , Object >newMapBuilder ()
743
+ .put ("test" , "value_before" )
744
+ .put ("test.nested" , "nested_value_before" )
745
+ .map ();
746
+ Map <String , Function <Object , Object >> transformers = Map .of ("test" , v -> "value_after" , "test.nested" , v -> "nested_value_after" );
747
+
748
+ Map <String , Object > expected = MapBuilder .<String , Object >newMapBuilder ()
749
+ .put ("test" , "value_after" )
750
+ .put ("test.nested" , "nested_value_before" )
751
+ .immutableMap ();
752
+
753
+ Map <String , Object > transformedMap = XContentMapValues .transform (mapToTransform , transformers , true );
754
+ assertEquals (expected , transformedMap );
755
+ }
756
+
741
757
private static Map <String , Object > toMap (Builder test , XContentType xContentType , boolean humanReadable ) throws IOException {
742
758
ToXContentObject toXContent = (builder , params ) -> test .apply (builder );
743
759
return convertToMap (toXContent (toXContent , xContentType , humanReadable ), true , xContentType ).v2 ();
0 commit comments