forked from qiujiayu/AutoLoadCache
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOgnlTest.java
More file actions
78 lines (60 loc) · 2.62 KB
/
Copy pathOgnlTest.java
File metadata and controls
78 lines (60 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.test.script;
import java.util.HashMap;
import java.util.Map;
import com.jarvis.cache.script.AbstractScriptParser;
import com.jarvis.cache.script.OgnlParser;
import com.test.Simple;
import junit.framework.TestCase;
/**
* @author: jiayu.qiu
*/
public class OgnlTest extends TestCase {
AbstractScriptParser scriptParser=new OgnlParser();
public void testJavaScript() 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, null, arguments, null, false);
System.out.println(res);
assertEquals("test_1111_2222", res);
// 自定义函数使用
Boolean rv=scriptParser.getElValue("@@empty(#args[0])", null, arguments, Boolean.class);
assertFalse(rv);
String val=null;
val=scriptParser.getElValue("@@hash(#args[0])", null, arguments, String.class);
System.out.println(val);
assertEquals("1111", val);
val=scriptParser.getElValue("@@hash(#args[1])", null, arguments, String.class);
System.out.println(val);
assertEquals("2222", val);
val=scriptParser.getElValue("@@hash(#args[2])", null, arguments, String.class);
System.out.println(val);
assertEquals("-290203482_-550943035_-57743508_-1052004462", val);
val=scriptParser.getElValue("@@hash(#args)", null, arguments, String.class);
System.out.println(val);
assertEquals("322960956_-1607969343_673194431_1921252123", val);
}
public void testReturnIsMapWithHfield() throws Exception {
String keySpEL="#retVal.rid";
Object[] arguments=new Object[]{"1111", "2222"};
Map returnObj=new HashMap(1);
returnObj.put("rid", "iamrid");
String res=scriptParser.getDefinedCacheKey(keySpEL, null, 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, null, arguments, simple, true);
System.out.println(res);
assertEquals("刘德华", res);
// 自定义函数使用
Boolean rv=scriptParser.getElValue("@@empty(#args[0])", null, arguments, Boolean.class);
assertFalse(rv);
}
}