@Test public void array_foreach_append() throws Exception { jsonDoc = EvalTestContext.getDoc("./termsdata.json"); md = EvalTestContext.getMd("./termsmd.json"); UpdateExpression expr = EvalTestContext.updateExpressionFromJson( "{ '$foreach' : { 'termsVerbiage' : { 'field':'uid','op':'=','rvalue':1} ," + "'$update' : [ " + "{ '$insert': { 'termsVerbiageTranslation.0': {}}}," + "{ '$set': {'termsVerbiageTranslation.0.localeCode':'lg','termsVerbiageTranslation.0.localeText':'Lang' } }" + " ] }}"); Updater updater = Updater.getInstance(JSON_NODE_FACTORY, md, expr); System.out.println("before:" + JsonUtils.prettyPrint(jsonDoc.getRoot())); Assert.assertTrue(updater.update(jsonDoc, md.getFieldTreeRoot(), new Path())); System.out.println("After:" + JsonUtils.prettyPrint(jsonDoc.getRoot())); Assert.assertEquals( 4, jsonDoc.get(new Path("termsVerbiage.0.termsVerbiageTranslation")).size()); Assert.assertEquals( "lg", jsonDoc.get(new Path("termsVerbiage.0.termsVerbiageTranslation.0.localeCode")).asText()); }
@Before public void setup() throws Exception { jsonDoc = EvalTestContext.getDoc("./sample1.json"); md = EvalTestContext.getMd("./testMetadata.json"); }