package jetbrick.template.exec.directive; import jetbrick.template.Errors; import jetbrick.template.exec.AbstractJetxTest; import jetbrick.template.runtime.InterpretException; import org.hamcrest.CoreMatchers; import org.junit.Assert; import org.junit.Test; public class DirectiveSetTest extends AbstractJetxTest { @Test public void test() { Assert.assertEquals("1", eval("#set(i=1)${i}")); Assert.assertEquals("1true", eval("#set(i=1,x=true)${i}${x}")); Assert.assertEquals("1a", eval("#set(i=1)${i}#set(i='a')${i}")); Assert.assertEquals("7", eval("#set(i=1+2*3)${i}")); } @Test public void testOk() { eval("#set(long i=1L)#set(i=1)"); eval("#set(int i=1)#set(int i=1)"); } @Test public void testFailed() { thrown.expect(InterpretException.class); thrown.expectMessage(CoreMatchers.containsString(errbefore(Errors.VARIABLE_TYPE_INCONSISTENT))); eval("#set(int i=1)#set(i=1L)"); } }