01: package org.mvel.util;
02:
03: import java.io.Serializable;
04: import java.util.HashMap;
05: import java.util.Map;
06:
07: import org.mvel.MVEL;
08:
09: import junit.framework.TestCase;
10:
11: public class FastMapTest extends TestCase {
12: protected Map<String, Object> map = new HashMap<String, Object>();
13:
14: public FastMapTest() {
15: map.put("var", "var");
16: }
17:
18: public void testHashCode() {
19: Map map = (Map) parseDirect("[ 'key1' : var ]");
20: int i = map.hashCode();
21: }
22:
23: public void testEquals() {
24: Map map1 = (Map) parseDirect("[ 'key1' : var ]");
25: Map map2 = new HashMap();
26: map2.put("key1", "var");
27: assertEquals(map2, map1);
28: assertEquals(map1, map2);
29: }
30:
31: public Object parseDirect(String ex) {
32: return compiledExecute(ex);
33: }
34:
35: public Object compiledExecute(String ex) {
36: Serializable compiled = MVEL.compileExpression(ex);
37: Object first = MVEL.executeExpression(compiled, null, map);
38: Object second = MVEL.executeExpression(compiled, null, map);
39:
40: if (first != null && !first.getClass().isArray())
41: assertEquals(first, second);
42:
43: return second;
44: }
45: }
|