package org.jtwig.integration.node; import org.jtwig.JtwigTemplate; import org.jtwig.integration.AbstractIntegrationTest; import org.jtwig.parser.ParseException; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.hamcrest.core.StringContains.containsString; import static org.jtwig.JtwigModel.newModel; public class OutputTest extends AbstractIntegrationTest { @Rule public ExpectedException expectedException = ExpectedException.none(); @Test public void output() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{ variable }} "); String result = template.render(newModel().with("variable", "hello")); assertThat(result, is(" hello ")); } @Test public void outputWithStripLeftWhiteSpace() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{- variable }} "); String result = template.render(newModel().with("variable", "hello")); assertThat(result, is("hello ")); } @Test public void outputWithStripRightWhiteSpace() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{ variable -}} "); String result = template.render(newModel().with("variable", "hello")); assertThat(result, is(" hello")); } @Test public void outputWithStripBothWhiteSpace() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{- variable -}} "); String result = template.render(newModel().with("variable", "hello")); assertThat(result, is("hello")); } @Test public void outputWithoutEndCodeIsland() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{- variable } "); expectedException.expect(ParseException.class); expectedException.expectMessage(containsString("Expecting end of output code island")); template.render(newModel()); } @Test public void outputWithoutExpression() throws Exception { JtwigTemplate template = JtwigTemplate.inlineTemplate(" {{- }} "); expectedException.expect(ParseException.class); expectedException.expectMessage(containsString("Missing or invalid output expression")); template.render(newModel()); } }