package org.trimou.handlebars;
import static org.junit.Assert.assertEquals;
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.engine.locator.MapTemplateLocator;
import org.trimou.exception.MustacheProblem;
import org.trimou.util.ImmutableMap;
/**
*
* @author Martin Kouba
*/
public class IncludeHelperTest extends AbstractTest {
@Test
public void testIncludeHelper() {
MustacheEngine engine = MustacheEngineBuilder.newBuilder()
.registerHelpers(HelpersBuilder.empty().addInclude().build())
.addTemplateLocator(new MapTemplateLocator(
ImmutableMap.of("template", "Hello!")))
.build();
assertEquals("Hello!",
engine.compileMustache("include_helper01", "{{include this}}")
.render("template"));
assertEquals("Hello!", engine
.compileMustache("include_helper02", "{{include 'temp' this}}")
.render("late"));
}
@Test
public void testIncludeHelperValidation() {
final MustacheEngine engine = MustacheEngineBuilder.newBuilder()
.registerHelpers(HelpersBuilder.empty().addInclude().build())
.build();
MustacheExceptionAssert
.expect(MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE)
.check(() -> engine.compileMustache(
"include_helper_validation01", "{{include}}"))
.check(() -> engine.compileMustache("set_helper_validation02",
"{{#include \"foo\"}}{{/include}}"));
}
}