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 SetTest extends AbstractIntegrationTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Test
public void simpleSet() throws Exception {
JtwigTemplate jtwigTemplate = JtwigTemplate.inlineTemplate("{% set variable = 1 %}{{ variable }}");
String result = jtwigTemplate.render(newModel());
assertThat(result, is("1"));
}
@Test
public void setWhiteSpaceControl() throws Exception {
JtwigTemplate jtwigTemplate = JtwigTemplate.inlineTemplate(" {%- set variable = 1 -%} {{ variable }}");
String result = jtwigTemplate.render(newModel());
assertThat(result, is("1"));
}
@Test
public void setNotEnding() throws Exception {
JtwigTemplate jtwigTemplate = JtwigTemplate.inlineTemplate(" {%- set variable = 1 {{ variable }}");
expectedException.expect(ParseException.class);
expectedException.expectMessage(containsString("Expecting end of set code island"));
jtwigTemplate.render(newModel());
}
@Test
public void setNoAttribution() throws Exception {
JtwigTemplate jtwigTemplate = JtwigTemplate.inlineTemplate(" {%- set variable 1 %}{{ variable }}");
expectedException.expect(ParseException.class);
expectedException.expectMessage(containsString("Expecting attribution operation '='"));
jtwigTemplate.render(newModel());
}
}