package com.test.script; import java.util.HashMap; import java.util.Map; import com.jarvis.cache.script.AbstractScriptParser; import com.jarvis.cache.script.JavaScriptParser; import com.test.Simple; import junit.framework.TestCase; public class JavaScriptTest extends TestCase { AbstractScriptParser scriptParser=new JavaScriptParser(); public void testJavaScript() throws Exception { String javaVersion=System.getProperty("java.version"); System.out.println(javaVersion); int ind=0; for(int i=0; i < 2; i++) { ind=javaVersion.indexOf(".", ind); ind++; } javaVersion=javaVersion.substring(0, ind); javaVersion=javaVersion.replaceAll("\\.", ""); System.out.println(Integer.parseInt(javaVersion)); String keySpEL="'test_'+args[0]+'_'+args[1]"; Object[] arguments=new Object[]{"1111", "2222"}; String res=scriptParser.getDefinedCacheKey(keySpEL, arguments, null, false); System.out.println(res); // 自定义函数使用 Boolean rv=scriptParser.getElValue("empty(args[0])", arguments, Boolean.class); assertFalse(rv); } public void testJavaScript2() throws Exception { String keySpEL="'test_'+args[0]+'_'+args[1]"; Simple simple=new Simple(); simple.setAge(18); simple.setName("刘德华"); simple.setSex(0); Object[] arguments=new Object[]{"1111", "2222", simple}; String res=scriptParser.getDefinedCacheKey(keySpEL, arguments, null, false); System.out.println(res); assertEquals("test_1111_2222", res); // 自定义函数使用 Boolean rv=scriptParser.getElValue("empty(args[0])", arguments, Boolean.class); assertFalse(rv); String val=null; val=scriptParser.getElValue("hash(args[0])", arguments, String.class); System.out.println(val); assertEquals("1111", val); val=scriptParser.getElValue("hash(args[1])", arguments, String.class); System.out.println(val); assertEquals("2222", val); val=scriptParser.getElValue("hash(args[2])", arguments, String.class); System.out.println(val); assertEquals("-290203482_-550943035_-57743508_-1052004462", val); val=scriptParser.getElValue("hash(args)", arguments, String.class); System.out.println(val); assertEquals("322960956_-1607969343_673194431_1921252123", val); } /** * @throws Exception */ public void testReturnIsMapWithHfield() throws Exception { String keySpEL=" (retVal['rid'])"; keySpEL="typeof(retVal);";// object keySpEL="(typeof retVal['rid'])";// undefined keySpEL="typeof retVal.rid";// undefined keySpEL="retVal.get('rid')";// undefined Object[] arguments=new Object[]{"1111", "2222"}; Map returnObj=new HashMap(); returnObj.put("rid", "iamrid"); String res=scriptParser.getDefinedCacheKey(keySpEL, arguments, returnObj, true); System.out.println(res); assertEquals("iamrid", res); Simple simple=new Simple(); simple.setAge(18); simple.setName("刘德华"); simple.setSex(0); keySpEL="retVal.name"; res=scriptParser.getDefinedCacheKey(keySpEL, arguments, simple, true); System.out.println(res); assertEquals("刘德华", res); // 自定义函数使用 Boolean rv=scriptParser.getElValue("empty(args[0])", arguments, Boolean.class); assertFalse(rv); } }