package org.trimou.handlebars; import static org.junit.Assert.assertEquals; import java.time.LocalDateTime; import org.junit.Test; import org.trimou.AbstractTest; import org.trimou.MustacheExceptionAssert; import org.trimou.engine.MustacheEngine; import org.trimou.engine.MustacheEngineBuilder; import org.trimou.exception.MustacheProblem; /** * * @author Martin Kouba */ public class FormatHelperTest extends AbstractTest { @Test public void testInterpolation() { MustacheEngine engine = MustacheEngineBuilder.newBuilder() .registerHelpers(HelpersBuilder.empty().addFmt().build()) .build(); assertEquals("Hello me!", engine .compileMustache("fmt_helper01", "{{fmt 'Hello %s!' 'me'}}") .render(null)); assertEquals(" d c b a", engine.compileMustache("fmt_helper02", "{{fmt '%4$2s %3$2s %2$2s %1$2s' 'a' 'b' 'c' 'd'}}") .render(null)); assertEquals("Tuesday", engine.compileMustache("fmt_helper03", "{{fmt '%tA' this locale='en'}}") .render(LocalDateTime.of(2016, 7, 26, 12, 0))); } @Test public void testValidation() { final MustacheEngine engine = MustacheEngineBuilder.newBuilder() .registerHelpers(HelpersBuilder.empty().addFmt().build()) .build(); MustacheExceptionAssert .expect(MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE) .check(() -> engine.compileMustache("fmt_helper_validation01", "{{#fmt}}{{/fmt}}")) .check(() -> engine.compileMustache("fmt_helper_validation02", "{{fmt}}")); } }