Source code: org/ognl/test/InterfaceInheritanceTest.java
1 //--------------------------------------------------------------------------
2 // Copyright (c) 2004, Drew Davidson and Luke Blanshard
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // Redistributions of source code must retain the above copyright notice,
10 // this list of conditions and the following disclaimer.
11 // Redistributions in binary form must reproduce the above copyright
12 // notice, this list of conditions and the following disclaimer in the
13 // documentation and/or other materials provided with the distribution.
14 // Neither the name of the Drew Davidson nor the names of its contributors
15 // may be used to endorse or promote products derived from this software
16 // without specific prior written permission.
17 //
18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22 // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
23 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
25 // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
29 // DAMAGE.
30 //--------------------------------------------------------------------------
31 package org.ognl.test;
32
33 import junit.framework.TestSuite;
34 import org.ognl.test.objects.Root;
35
36 public class InterfaceInheritanceTest extends OgnlTestCase
37 {
38 private static Root ROOT = new Root();
39
40 private static Object[][] TESTS = {
41 // Interface inheritence test
42 { ROOT, "myMap", ROOT.getMyMap() },
43 { ROOT, "myMap.test", ROOT },
44 { ROOT.getMyMap(), "list", ROOT.getList() },
45 { ROOT, "myMap.array[0]", new Integer(ROOT.getArray()[0]) },
46 { ROOT, "myMap.list[1]", ROOT.getList().get(1) },
47 { ROOT, "myMap[^]", new Integer(99) },
48 { ROOT, "myMap[$]", null },
49 { ROOT.getMyMap(), "array[$]", new Integer(ROOT.getArray()[ROOT.getArray().length-1]) },
50 { ROOT, "[\"myMap\"]", ROOT.getMyMap() },
51 { ROOT, "myMap[null]", null },
52 { ROOT, "myMap[#x = null]", null },
53 { ROOT, "myMap.(null,test)", ROOT },
54 { ROOT, "myMap[null] = 25", new Integer(25) },
55 { ROOT, "myMap[null]", new Integer(25), new Integer(50), new Integer(50) },
56 };
57
58 /*===================================================================
59 Public static methods
60 ===================================================================*/
61 public static TestSuite suite()
62 {
63 TestSuite result = new TestSuite();
64
65 for (int i = 0; i < TESTS.length; i++) {
66 if (TESTS[i].length == 3) {
67 result.addTest(new InterfaceInheritanceTest((String)TESTS[i][1], TESTS[i][0], (String)TESTS[i][1], TESTS[i][2]));
68 } else {
69 if (TESTS[i].length == 4) {
70 result.addTest(new InterfaceInheritanceTest((String)TESTS[i][1], TESTS[i][0], (String)TESTS[i][1], TESTS[i][2], TESTS[i][3]));
71 } else {
72 if (TESTS[i].length == 5) {
73 result.addTest(new InterfaceInheritanceTest((String)TESTS[i][1], TESTS[i][0], (String)TESTS[i][1], TESTS[i][2], TESTS[i][3], TESTS[i][4]));
74 } else {
75 throw new RuntimeException("don't understand TEST format");
76 }
77 }
78 }
79 }
80 return result;
81 }
82
83 /*===================================================================
84 Constructors
85 ===================================================================*/
86 public InterfaceInheritanceTest()
87 {
88 super();
89 }
90
91 public InterfaceInheritanceTest(String name)
92 {
93 super(name);
94 }
95
96 public InterfaceInheritanceTest(String name, Object root, String expressionString, Object expectedResult, Object setValue, Object expectedAfterSetResult)
97 {
98 super(name, root, expressionString, expectedResult, setValue, expectedAfterSetResult);
99 }
100
101 public InterfaceInheritanceTest(String name, Object root, String expressionString, Object expectedResult, Object setValue)
102 {
103 super(name, root, expressionString, expectedResult, setValue);
104 }
105
106 public InterfaceInheritanceTest(String name, Object root, String expressionString, Object expectedResult)
107 {
108 super(name, root, expressionString, expectedResult);
109 }
110 }