package org.trimou.engine.segment; import static org.junit.Assert.assertEquals; import java.math.BigDecimal; import java.util.Collections; import org.junit.Test; import org.trimou.AbstractEngineTest; import org.trimou.Hammer; import org.trimou.Mustache; import org.trimou.util.ImmutableMap; /** * * @author Martin Kouba */ public class InvertedSectionSegmentTest extends AbstractEngineTest { @Test public void testBoolean() { String templateContents = "Hello {{^test}}me{{/test}}!"; Mustache mustache = engine.compileMustache("boolean", templateContents); assertEquals("Hello me!", mustache.render(ImmutableMap .<String, Object> of("test", false))); assertEquals("Hello !", mustache.render(ImmutableMap.<String, Object> of("test", true))); } @Test public void testIterable() { String templateContents = "{{^numbers}}Hey!{{/numbers}}"; Mustache mustache = engine .compileMustache("iterable", templateContents); assertEquals("Hey!", mustache.render(ImmutableMap.<String, Object> of( "numbers", Collections.emptyList()))); assertEquals("", mustache.render(ImmutableMap.<String, Object> of( "numbers", Collections.singleton(1)))); } @Test public void testArray() { String templateContents = "{{^numbers}}Hey!{{/numbers}}"; Mustache mustache = engine .compileMustache("iterable", templateContents); assertEquals("Hey!", mustache.render(ImmutableMap.<String, Object> of( "numbers", new Object[] {}))); assertEquals("", mustache.render(ImmutableMap.<String, Object> of( "numbers", new String[] { "Hello" }))); } @Test public void testNestedContext() { String templateContents = "Hello {{^test}}ping{{/test}}!"; Mustache mustache = engine.compileMustache("nested", templateContents); assertEquals("Hello !", mustache.render(ImmutableMap .<String, Object> of("test", new Hammer()))); assertEquals("Hello ping!", mustache.render(Collections.singletonMap("test", null))); } @Test public void testNumber() { String templateContents = "Hello {{^this}}ping{{/this}}!"; Mustache mustache = engine.compileMustache("number", templateContents); assertEquals("Hello !", mustache.render(new BigDecimal("0.1"))); assertEquals("Hello !", mustache.render(BigDecimal.ZERO)); assertEquals("Hello !", mustache.render(0L)); } }