@@ -1981,6 +1981,29 @@ public void setHashReplaceExisting() {
19811981
19821982 @ Test
19831983 public void addArrayAppend () {
1984+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
1985+ "add_array('array[].$append')"
1986+ ),
1987+ i -> {
1988+ i .startRecord ("1" );
1989+ i .startEntity ("array[]" );
1990+ i .literal ("1" , "foo" );
1991+ i .endEntity ();
1992+ i .endRecord ();
1993+ },
1994+ (o , f ) -> {
1995+ o .get ().startRecord ("1" );
1996+ o .get ().startEntity ("array[]" );
1997+ o .get ().literal ("1" , "foo" );
1998+ o .get ().startEntity ("2[]" );
1999+ f .apply (2 ).endEntity ();
2000+ o .get ().endRecord ();
2001+ }
2002+ );
2003+ }
2004+
2005+ @ Test
2006+ public void addArrayAppendNested () {
19842007 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
19852008 "add_array('array[].$append.test[]')"
19862009 ),
@@ -2005,6 +2028,29 @@ public void addArrayAppend() {
20052028
20062029 @ Test
20072030 public void setArrayAppend () {
2031+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2032+ "set_array('array[].$append')"
2033+ ),
2034+ i -> {
2035+ i .startRecord ("1" );
2036+ i .startEntity ("array[]" );
2037+ i .literal ("1" , "foo" );
2038+ i .endEntity ();
2039+ i .endRecord ();
2040+ },
2041+ (o , f ) -> {
2042+ o .get ().startRecord ("1" );
2043+ o .get ().startEntity ("array[]" );
2044+ o .get ().literal ("1" , "foo" );
2045+ o .get ().startEntity ("2[]" );
2046+ f .apply (2 ).endEntity ();
2047+ o .get ().endRecord ();
2048+ }
2049+ );
2050+ }
2051+
2052+ @ Test
2053+ public void setArrayAppendNested () {
20082054 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
20092055 "set_array('array[].$append.test[]')"
20102056 ),
@@ -2047,6 +2093,30 @@ public void setArrayLast() {
20472093 );
20482094 }
20492095
2096+ @ Test
2097+ public void setArrayLastNested () {
2098+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2099+ "set_array('array[].$last.test[]')"
2100+ ),
2101+ i -> {
2102+ i .startRecord ("1" );
2103+ i .startEntity ("array[]" );
2104+ i .startEntity ("1" );
2105+ i .endEntity ();
2106+ i .endEntity ();
2107+ i .endRecord ();
2108+ },
2109+ (o , f ) -> {
2110+ o .get ().startRecord ("1" );
2111+ o .get ().startEntity ("array[]" );
2112+ o .get ().startEntity ("1" );
2113+ o .get ().startEntity ("test[]" );
2114+ f .apply (3 ).endEntity ();
2115+ o .get ().endRecord ();
2116+ }
2117+ );
2118+ }
2119+
20502120 @ Test
20512121 public void addFieldAppend () {
20522122 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
@@ -2070,6 +2140,30 @@ public void addFieldAppend() {
20702140 );
20712141 }
20722142
2143+ @ Test
2144+ public void addFieldAppendNested () {
2145+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2146+ "add_field('array[].$append.test', 'bar')"
2147+ ),
2148+ i -> {
2149+ i .startRecord ("1" );
2150+ i .startEntity ("array[]" );
2151+ i .literal ("1" , "foo" );
2152+ i .endEntity ();
2153+ i .endRecord ();
2154+ },
2155+ (o , f ) -> {
2156+ o .get ().startRecord ("1" );
2157+ o .get ().startEntity ("array[]" );
2158+ o .get ().literal ("1" , "foo" );
2159+ o .get ().startEntity ("2" );
2160+ o .get ().literal ("test" , "bar" );
2161+ f .apply (2 ).endEntity ();
2162+ o .get ().endRecord ();
2163+ }
2164+ );
2165+ }
2166+
20732167 @ Test
20742168 public void setFieldAppend () {
20752169 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
@@ -2082,6 +2176,29 @@ public void setFieldAppend() {
20822176 i .endEntity ();
20832177 i .endRecord ();
20842178 },
2179+ o -> {
2180+ o .get ().startRecord ("1" );
2181+ o .get ().startEntity ("array[]" );
2182+ o .get ().literal ("1" , "foo" );
2183+ o .get ().literal ("2" , "test" );
2184+ o .get ().endEntity ();
2185+ o .get ().endRecord ();
2186+ }
2187+ );
2188+ }
2189+
2190+ @ Test
2191+ public void setFieldAppendNested () {
2192+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2193+ "set_field('array[].$append.test', 'bar')"
2194+ ),
2195+ i -> {
2196+ i .startRecord ("1" );
2197+ i .startEntity ("array[]" );
2198+ i .literal ("1" , "foo" );
2199+ i .endEntity ();
2200+ i .endRecord ();
2201+ },
20852202 o -> {
20862203 o .get ().startRecord ("1" );
20872204 o .get ().startEntity ("array[]" );
@@ -2114,8 +2231,57 @@ public void setFieldLast() {
21142231 );
21152232 }
21162233
2234+ @ Test
2235+ public void setFieldLastNested () {
2236+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2237+ "set_field('array[].$last.test', 'baz')"
2238+ ),
2239+ i -> {
2240+ i .startRecord ("1" );
2241+ i .startEntity ("array[]" );
2242+ i .startEntity ("1" );
2243+ i .literal ("foo" , "bar" );
2244+ i .endEntity ();
2245+ i .endEntity ();
2246+ i .endRecord ();
2247+ },
2248+ (o , f ) -> {
2249+ o .get ().startRecord ("1" );
2250+ o .get ().startEntity ("array[]" );
2251+ o .get ().startEntity ("1" );
2252+ o .get ().literal ("foo" , "bar" );
2253+ o .get ().literal ("test" , "baz" );
2254+ f .apply (2 ).endEntity ();
2255+ o .get ().endRecord ();
2256+ }
2257+ );
2258+ }
2259+
21172260 @ Test
21182261 public void addHashAppend () {
2262+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2263+ "add_hash('array[].$append')"
2264+ ),
2265+ i -> {
2266+ i .startRecord ("1" );
2267+ i .startEntity ("array[]" );
2268+ i .literal ("1" , "foo" );
2269+ i .endEntity ();
2270+ i .endRecord ();
2271+ },
2272+ (o , f ) -> {
2273+ o .get ().startRecord ("1" );
2274+ o .get ().startEntity ("array[]" );
2275+ o .get ().literal ("1" , "foo" );
2276+ o .get ().startEntity ("2" );
2277+ f .apply (2 ).endEntity ();
2278+ o .get ().endRecord ();
2279+ }
2280+ );
2281+ }
2282+
2283+ @ Test
2284+ public void addHashAppendNested () {
21192285 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
21202286 "add_hash('array[].$append.test')"
21212287 ),
@@ -2140,6 +2306,29 @@ public void addHashAppend() {
21402306
21412307 @ Test
21422308 public void setHashAppend () {
2309+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2310+ "set_hash('array[].$append')"
2311+ ),
2312+ i -> {
2313+ i .startRecord ("1" );
2314+ i .startEntity ("array[]" );
2315+ i .literal ("1" , "foo" );
2316+ i .endEntity ();
2317+ i .endRecord ();
2318+ },
2319+ (o , f ) -> {
2320+ o .get ().startRecord ("1" );
2321+ o .get ().startEntity ("array[]" );
2322+ o .get ().literal ("1" , "foo" );
2323+ o .get ().startEntity ("2" );
2324+ f .apply (2 ).endEntity ();
2325+ o .get ().endRecord ();
2326+ }
2327+ );
2328+ }
2329+
2330+ @ Test
2331+ public void setHashAppendNested () {
21432332 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
21442333 "set_hash('array[].$append.test')"
21452334 ),
@@ -2182,6 +2371,32 @@ public void setHashLast() {
21822371 );
21832372 }
21842373
2374+ @ Test
2375+ public void setHashLastNested () {
2376+ MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
2377+ "set_hash('array[].$last.test')"
2378+ ),
2379+ i -> {
2380+ i .startRecord ("1" );
2381+ i .startEntity ("array[]" );
2382+ i .startEntity ("1" );
2383+ i .literal ("foo" , "bar" );
2384+ i .endEntity ();
2385+ i .endEntity ();
2386+ i .endRecord ();
2387+ },
2388+ (o , f ) -> {
2389+ o .get ().startRecord ("1" );
2390+ o .get ().startEntity ("array[]" );
2391+ o .get ().startEntity ("1" );
2392+ o .get ().literal ("foo" , "bar" );
2393+ o .get ().startEntity ("test" );
2394+ f .apply (3 ).endEntity ();
2395+ o .get ().endRecord ();
2396+ }
2397+ );
2398+ }
2399+
21852400 @ Test
21862401 public void paste () {
21872402 MetafixTestHelpers .assertFix (streamReceiver , Arrays .asList (
0 commit comments