package org.trimou.engine.segment; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import org.junit.Test; import org.trimou.AbstractEngineTest; import org.trimou.Mustache; import org.trimou.engine.MustacheEngineBuilder; import org.trimou.engine.config.EngineConfigurationKey; import org.trimou.engine.parser.Template; /** * * @author Martin Kouba */ public class LineSeparatorSegmentTest extends AbstractEngineTest { @Override public void buildEngine() { } @Test public void testLineSeparators() { String templateContents = "\nHello\r\n\n!"; Mustache mustache = MustacheEngineBuilder.newBuilder().build() .compileMustache("line_sep", templateContents); assertEquals("\nHello\r\n\n!", mustache.render(null)); } @Test public void testLineSeparatorsReuse() { Template template = (Template) MustacheEngineBuilder .newBuilder() .setProperty( EngineConfigurationKey.REUSE_LINE_SEPARATOR_SEGMENTS, true).build() .compileMustache("line_sep_reuse_enabled", "Hello\n\n\n"); assertEquals(4, template.getRootSegment().getSegmentsSize(false)); assertEquals(template.getRootSegment().getSegments().get(1), template .getRootSegment().getSegments().get(2)); assertEquals(template.getRootSegment().getSegments().get(1), template .getRootSegment().getSegments().get(3)); } @Test public void testLineSeparatorsReuseDisabled() { Template template = (Template) MustacheEngineBuilder .newBuilder() .setProperty( EngineConfigurationKey.REUSE_LINE_SEPARATOR_SEGMENTS, false).build() .compileMustache("line_sep_reuse_disabled", "Hello\n\n\n"); assertEquals(4, template.getRootSegment().getSegmentsSize(false)); assertNotEquals(template.getRootSegment().getSegments().get(1), template.getRootSegment().getSegments().get(2)); assertNotEquals(template.getRootSegment().getSegments().get(1), template.getRootSegment().getSegments().get(3)); } }