package org.trimou.handlebars;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.trimou.MustacheExceptionAssert;
import org.trimou.engine.MustacheEngine;
import org.trimou.engine.MustacheEngineBuilder;
import org.trimou.engine.config.SimpleConfigurationKey;
import org.trimou.exception.MustacheException;
import org.trimou.exception.MustacheProblem;
/**
*
* @author Martin Kouba
*/
public class SimpleHelperTest {
@Test
public void testSimpleHelper() {
MustacheEngine engine = MustacheEngineBuilder
.newBuilder()
.registerHelper("lc", SimpleHelpers.execute((o, c) -> {
String value = o.getParameters().get(0).toString();
o.append(value.toLowerCase());
}))
.registerHelper(
"lc_validate",
SimpleHelpers
.builder()
.execute(
(o, c) -> o.append(o.getParameters().get(0)
.toString().toLowerCase()))
.validate(
(d, c) -> {
if (d.getParameters().isEmpty())
throw new MustacheException(
MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE);
}).build()).build();
assertEquals("ok",
engine.compileMustache("simple_helper_01", "{{lc 'OK'}}")
.render(null));
MustacheExceptionAssert.expect(
MustacheProblem.COMPILE_HELPER_VALIDATION_FAILURE).check(
() -> engine.compileMustache("simple_helper_02",
"{{lc_validate}}").render(null));
}
@Test
public void testSimpleHelperConfiguration() {
final SimpleConfigurationKey key = new SimpleConfigurationKey(
"test.key", 10L);
MustacheEngine engine = MustacheEngineBuilder
.newBuilder()
.registerHelper("test",
SimpleHelpers.builder().execute((o, c) -> o.append(c.getLongPropertyValue(key).toString()))
.addConfigurationKey(key).build()).build();
assertEquals("10",
engine.compileMustache("simple_helper_config_01", "{{test}}")
.render(null));
}
}