package jetbrick.template.exec.buildin; import jetbrick.template.exec.AbstractJetxTest; import jetbrick.template.runtime.InterpretException; import jetbrick.util.DateUtils; import org.junit.Assert; import org.junit.Test; import java.util.HashMap; import java.util.Map; public class BuildinMethodTest extends AbstractJetxTest { @Test public void testJson() { Assert.assertEquals("123", eval("${123.asJson()}")); Assert.assertEquals("false", eval("${false.asJson()}")); Assert.assertEquals("\"a\"", eval("${'a'.asJson()}")); Assert.assertEquals("[]", eval("${[].asJson()}")); Assert.assertEquals("[1,false]", eval("${[1,false].asJson()}")); Assert.assertEquals("{}", eval("${{}.asJson()}")); Assert.assertEquals("{\"a\":1}", eval("${{a:1}.asJson()}")); } @Test public void testFormatNumber() { Assert.assertEquals("123.00", eval("${123.format()}")); Assert.assertEquals("123.57", eval("${123.567.format()}")); } @Test public void testFormatDate() { Map<String, Object> ctx = new HashMap<String, Object>(); ctx.put("d", DateUtils.parse("2014-01-01 12:00:00")); Assert.assertEquals("2014-01-01 12:00:00", eval("${d.format()}", ctx)); Assert.assertEquals("140101", eval("${d.format('yyMMdd')}", ctx)); } @Test public void testAsDate() { Assert.assertEquals("2014-01-01 12:00:00", eval("${'2014-01-01 12:00:00'.asDate().format()}")); Assert.assertEquals("2014-01-01 00:00:00", eval("${'2014-01-01'.asDate('yyyy-MM-dd').format()}")); } @Test public void testWord() { Assert.assertEquals("User", eval("${'user'.capitalize()}")); Assert.assertEquals("user_info", eval("${'UserInfo'.toUnderlineName()}")); Assert.assertEquals("userInfo", eval("${'user_info'.toCamelCase()}")); Assert.assertEquals("UserInfo", eval("${'user_info'.toCapitalizeCamelCase()}")); } @Test public void testEscapeString() { Assert.assertEquals("\\n", eval("${'\\n'.escapeJava()}")); Assert.assertEquals("\\n", eval("${'\\n'.escapeJavaScript()}")); Assert.assertEquals("<>", eval("${'<>'.escapeXml()}")); Assert.assertEquals("+", eval("${' '.escapeUrl()}")); } @Test public void testString() { // String::abbreviate Assert.assertEquals("123...", eval("${'1234567'.abbreviate(6)}")); Assert.assertEquals("1234567", eval("${'1234567'.abbreviate(7)}")); Assert.assertEquals("1234567", eval("${'1234567'.abbreviate(8)}")); Assert.assertEquals("1...", eval("${'1234567'.abbreviate(4)}")); // String::md5Hex Assert.assertEquals("1102ea8656d577d8f73fcc9e8cf9b182", eval("${'yingzhuo'.md5Hex()}")); Assert.assertEquals("1102ea8656d577d8f73fcc9e8cf9b182", eval("${'yingzhuo'.md5Hex('UTF-8')}")); // String::sha1Hex Assert.assertEquals("aa8109651bbe5e60870190d93be97880edf954b1", eval("${'yingzhuo'.sha1Hex()}")); Assert.assertEquals("aa8109651bbe5e60870190d93be97880edf954b1", eval("${'yingzhuo'.sha1Hex('UTF-8')}")); } @Test(expected = InterpretException.class) public void testStringWithException() { eval("${'1234567'.abbreviate(3)}"); } }