public void registerFilter(Filter filter) { context.registerFilter(filter); }
@Test public void testOnlyArgs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {3L, 1L}; Map<String, Object> expectedKwargs = new HashMap<>(); jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(3, 1) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testRepeatedKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {true}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "overwrite"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(true, named='test', named='overwrite') }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testOnlyArgs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {3L, 1L}; Map<String, Object> expectedKwargs = new HashMap<>(); jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(3, 1) }}", new HashMap<>())).isEqualTo("test"); }
private Jinjava createJinjaRenderer(boolean failOnUnknownTokens, ObjectMapper pipelineTemplateObjectMapper, Front50Service front50Service, List<Tag> jinjaTags) { Jinjava jinja = new Jinjava(buildJinjavaConfig(failOnUnknownTokens)); jinja.setResourceLocator(new NoopResourceLocator()); jinja.getGlobalContext().registerTag(new ModuleTag(this, pipelineTemplateObjectMapper)); jinja.getGlobalContext().registerTag(new PipelineIdTag(front50Service)); jinja.getGlobalContext().registerTag(new StrategyIdTag(front50Service)); if (jinjaTags != null) { jinjaTags.forEach(tag -> jinja.getGlobalContext().registerTag(tag)); } jinja.getGlobalContext().registerFilter(new FriggaFilter()); jinja.getGlobalContext().registerFilter(new JsonFilter(pipelineTemplateObjectMapper)); jinja.getGlobalContext().registerFilter(new Base64Filter(this)); jinja.getGlobalContext().registerFilter(new MaxFilter()); jinja.getGlobalContext().registerFilter(new MinFilter()); return jinja; }
@Test public void itAllowsCamelCasedFilterNames() { jinjava = new Jinjava(); jinjava.getGlobalContext().registerFilter(new ReturnHelloFilter()); assertThat(jinjava.render("{{ 'test'|returnHello }}", new HashMap<>())).isEqualTo("Hello"); }
@Test public void itTestsNullKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named1", null); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|divide(named1) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testUnorderedArgsAndKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {"1", 2L}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "test"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror('1', named='test', 2) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testMixedArgsAndKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {1L, 2L}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "test"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(1, 2, named='test') }}", new HashMap<>())).isEqualTo("test"); }
@Test public void itTestsNullKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named1", null); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|divide(named1) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testMixedArgsAndKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {1L, 2L}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "test"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(1, 2, named='test') }}", new HashMap<>())).isEqualTo("test"); }
@Test public void itAllowsCamelCasedFilterNames() { jinjava = new Jinjava(); jinjava.getGlobalContext().registerFilter(new ReturnHelloFilter()); assertThat(jinjava.render("{{ 'test'|returnHello }}", new HashMap<>())).isEqualTo("Hello"); }
@Test public void testRepeatedKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {true}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "overwrite"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(true, named='test', named='overwrite') }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testUnorderedArgsAndKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {"1", 2L}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named", "test"); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror('1', named='test', 2) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testOnlyKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named10", "str"); put("named2", 3L); put("namedB", true); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(named2=3, named10='str', namedB=true) }}", new HashMap<>())).isEqualTo("test"); }
@Test public void testOnlyKwargs() { jinjava = new Jinjava(); Object[] expectedArgs = new Object[] {}; Map<String, Object> expectedKwargs = new HashMap<String, Object>() {{ put("named10", "str"); put("named2", 3L); put("namedB", true); }}; jinjava.getGlobalContext().registerFilter(new MyMirrorFilter(expectedArgs, expectedKwargs)); assertThat(jinjava.render("{{ 'test'|mirror(named2=3, named10='str', namedB=true) }}", new HashMap<>())).isEqualTo("test"); }
@Before public void setup() { validationFilter = new ValidationFilter(); ELFunctionDefinition validationFunction = new ELFunctionDefinition("", "validation_test", ValidationModeTest.class, "validationTestFunction"); jinjava = new Jinjava(); jinjava.getGlobalContext().registerFilter(validationFilter); jinjava.getGlobalContext().registerFunction(validationFunction); interpreter = jinjava.newInterpreter(); context = interpreter.getContext(); validatingInterpreter = new JinjavaInterpreter(jinjava, context, JinjavaConfig.newBuilder().withValidationMode(true).build()); JinjavaInterpreter.pushCurrent(interpreter); }
@Before public void setup() { validationFilter = new ValidationFilter(); ELFunctionDefinition validationFunction = new ELFunctionDefinition("", "validation_test", ValidationModeTest.class, "validationTestFunction"); jinjava = new Jinjava(); jinjava.getGlobalContext().registerFilter(validationFilter); jinjava.getGlobalContext().registerFunction(validationFunction); interpreter = jinjava.newInterpreter(); context = interpreter.getContext(); validatingInterpreter = new JinjavaInterpreter(jinjava, context, JinjavaConfig.newBuilder().withValidationMode(true).build()); JinjavaInterpreter.pushCurrent(interpreter); }