package org.trimou.engine.interpolation; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Collections; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Before; import org.junit.Test; import org.trimou.AbstractEngineTest; import org.trimou.engine.MustacheEngine; import org.trimou.engine.MustacheEngineBuilder; import org.trimou.engine.MustacheTagInfo; import org.trimou.engine.config.Configuration; import org.trimou.engine.config.ConfigurationKey; /** * * @author Martin Kouba */ public class CustomMissingValueHandlerTest extends AbstractEngineTest { @Before public void buildEngine() { } @Test public void testCustomMissingValueHandler() { final AtomicBoolean handlerInvoked = new AtomicBoolean(false); MustacheEngine engine = MustacheEngineBuilder.newBuilder() .setMissingValueHandler(new MissingValueHandler() { @Override public void init(Configuration configuration) { } @Override public Set<ConfigurationKey> getConfigurationKeys() { return Collections.emptySet(); } @Override public Object handle(MustacheTagInfo info) { handlerInvoked.set(true); return "FOO"; } }).build(); assertEquals("FOO", engine.compileMustache("custom_mvh", "{{foo.bar}}") .render(null)); assertTrue(handlerInvoked.get()); } }