diff --git a/drivers-api/src/test/java/io/nosqlbench/engine/api/templating/ParsedOpTest.java b/drivers-api/src/test/java/io/nosqlbench/engine/api/templating/ParsedOpTest.java index cf0975f26..fe7e45460 100644 --- a/drivers-api/src/test/java/io/nosqlbench/engine/api/templating/ParsedOpTest.java +++ b/drivers-api/src/test/java/io/nosqlbench/engine/api/templating/ParsedOpTest.java @@ -28,17 +28,49 @@ public class ParsedOpTest { ) ), ConfigModel.of(ParsedOpTest.class) - .add(Param.defaultTo("testcfg","testval")) + .add(Param.defaultTo("testcfg", "testval")) .asReadOnly() .apply(Map.of()) ); + @Test + public void testSubMapTemplates() { + ParsedOp pop = new ParsedOp( + new OpData().applyFields(Map.of( + "op", Map.of( + "field1-literal", "literalvalue1", + "field2-object", "{{NumberNameToString()}}", + "field3-template", "pre-{dyna1}-post", + "field4-map-template", Map.of( + "subfield1-object", "{{Identity(); ToString()}}" + ),"field5-map-literal", Map.of( + "subfield2-literal", "LiteralValue" + ) + ), + "bindings", Map.of( + "dyna1", "NumberNameToString()" + )) + ), + ConfigModel.of(ParsedOpTest.class) + .add(Param.defaultTo("testcfg", "testval")) + .asReadOnly() + .apply(Map.of()) + ); + LongFunction f1 = pop.getAsRequiredFunction("field1-literal"); + LongFunction f2 = pop.getAsRequiredFunction("field2-object"); + LongFunction f3 = pop.getAsRequiredFunction("field3-template"); + LongFunction f4 = pop.getAsRequiredFunction("field4-map-template",Map.class); + LongFunction f5 = pop.getAsRequiredFunction("field5-map-literal",Map.class); + System.out.println("woo"); + + } + @Test public void testParsedOp() { Map m1 = pc.apply(0); assertThat(m1).containsEntry("stmt", "test"); - assertThat(m1).containsEntry("dyna1","zero"); - assertThat(m1).containsEntry("dyna2","zero"); + assertThat(m1).containsEntry("dyna1", "zero"); + assertThat(m1).containsEntry("dyna2", "zero"); assertThat(m1).containsEntry("identity", 0L); } @@ -46,20 +78,22 @@ public class ParsedOpTest { public void testNewListBinder() { LongFunction> lb = pc.newListBinder("dyna1", "identity", "dyna2", "identity"); List objects = lb.apply(1); - assertThat(objects).isEqualTo(List.of("one",1L,"one",1L)); + assertThat(objects).isEqualTo(List.of("one", 1L, "one", 1L)); } @Test public void testNewMapBinder() { LongFunction> mb = pc.newOrderedMapBinder("dyna1", "identity", "dyna2"); Map objects = mb.apply(2); - assertThat(objects).isEqualTo(Map.of("dyna1","two","identity",2L,"dyna2","two")); + assertThat(objects).isEqualTo(Map.of("dyna1", "two", "identity", 2L, "dyna2", "two")); } @Test public void testNewAryBinder() { LongFunction ab = pc.newArrayBinder("dyna1", "dyna1", "identity", "identity"); Object[] objects = ab.apply(3); - assertThat(objects).isEqualTo(new Object[]{"three","three",3L,3L}); + assertThat(objects).isEqualTo(new Object[]{"three", "three", 3L, 3L}); } + + }