package jetbrick.template.exec.value;
import jetbrick.template.exec.AbstractJetxTest;
import org.junit.Assert;
import org.junit.Test;
public class ConstantTest extends AbstractJetxTest {
@Test
public void testNumber() {
Assert.assertEquals("123", eval("${123}"));
Assert.assertEquals("123", eval("${123L}"));
Assert.assertEquals("99.99", eval("${99.99}"));
Assert.assertEquals("99.99", eval("${99.99F}"));
Assert.assertEquals("99.99", eval("${99.99d}"));
Assert.assertEquals("9.999E100", eval("${9.999e100}"));
Assert.assertEquals("65280", eval("${0xFF00}"));
Assert.assertEquals("65280", eval("${0xFF00L}"));
Assert.assertEquals("-123", eval("${-123}"));
Assert.assertEquals("-99.99", eval("${-99.99F}"));
Assert.assertEquals("-9.999E-9", eval("${-99.99E-10d}"));
Assert.assertEquals("0.01", eval("${0.01}"));
Assert.assertEquals("1.1", eval("${1.10D}"));
}
@Test
public void testString() {
Assert.assertEquals("abc", eval("${\"abc\"}"));
Assert.assertEquals("abc", eval("${'abc'}"));
Assert.assertEquals("abc\n000", eval("${'abc\\n000'}"));
Assert.assertEquals("\u004a", eval("${'\\u004a'}"));
Assert.assertEquals("\t\n\'\"", eval("${'\\t\\n\\'\\\"'}"));
}
@Test
public void testOthers() {
Assert.assertEquals("true", eval("${true}"));
Assert.assertEquals("false", eval("${false}"));
Assert.assertEquals("", eval("${null}"));
}
@Test
public void testList() {
Assert.assertEquals("[]", eval("${[]}"));
Assert.assertEquals("[1, 2, 3]", eval("${[1,2,3]}"));
Assert.assertEquals("[1, a, true]", eval("${[1,'a',true]}"));
}
@Test
public void testMap() {
Assert.assertEquals("{}", eval("${{}}"));
Assert.assertEquals("{name=jetbrick}", eval("${{name:'jetbrick'}}"));
Assert.assertEquals("{name=jetbrick}", eval("${{'name':'jetbrick'}}"));
Assert.assertEquals("{name=jetbrick, lang=java}", eval("${{name:'jetbrick', lang: 'java'}}"));
}
}