1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jxpath.ri.model;
18
19 import java.util.HashMap;
20 import java.util.Locale;
21
22 import org.apache.commons.jxpath.JXPathContext;
23 import org.apache.commons.jxpath.JXPathTestCase;
24 import org.apache.commons.jxpath.TestBean;
25
26 public class JXPath151Test extends JXPathTestCase {
27
28 private JXPathContext context;
29
30 public void setUp() {
31 TestBean testBean = new TestBean();
32 HashMap m = new HashMap();
33 m.put("a", Integer.valueOf(1));
34 m.put("b", null);
35 m.put("c", Integer.valueOf(1));
36 m.put("d", Integer.valueOf(0));
37 testBean.setMap(m);
38 context = JXPathContext.newContext(testBean);
39 context.setLocale(Locale.US);
40 }
41
42 public void testMapValueEquality() {
43 assertXPathValue(context, "map/b != map/a", Boolean.TRUE);
44 assertXPathValue(context, "map/a != map/b", Boolean.TRUE);
45 assertXPathValue(context, "map/a != map/c", Boolean.FALSE);
46 assertXPathValue(context, "map/a = map/b", Boolean.FALSE);
47 assertXPathValue(context, "map/a = map/c", Boolean.TRUE);
48 assertXPathValue(context, "not(map/a = map/b)", Boolean.TRUE);
49 assertXPathValue(context, "not(map/a = map/c)", Boolean.FALSE);
50 }
51
52 public void testMapValueEqualityUsingNameAttribute() {
53 assertXPathValue(context, "map[@name = 'b'] != map[@name = 'c']", Boolean.TRUE);
54 assertXPathValue(context, "map[@name = 'a'] != map[@name = 'b']", Boolean.TRUE);
55 assertXPathValue(context, "map[@name = 'a'] != map[@name = 'c']", Boolean.FALSE);
56 assertXPathValue(context, "map[@name = 'a'] = map[@name = 'b']", Boolean.FALSE);
57 assertXPathValue(context, "map[@name = 'a'] = map[@name = 'c']", Boolean.TRUE);
58 assertXPathValue(context, "map[@name = 'd'] = map[@name = 'b']", Boolean.TRUE);
59 assertXPathValue(context, "map[@name = 'd'] = map[@name = 'b']", Boolean.TRUE);
60 assertXPathValue(context, "not(map[@name = 'a'] = map[@name = 'b'])", Boolean.TRUE);
61 assertXPathValue(context, "not(map[@name = 'a'] = map[@name = 'c'])", Boolean.FALSE);
62 }
63 }