You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ra...@apache.org on 2009/08/01 02:46:51 UTC
svn commit: r799781 - in
/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl: ./
parser/ util/introspection/
Author: rahul
Date: Sat Aug 1 00:46:50 2009
New Revision: 799781
URL: http://svn.apache.org/viewvc?rev=799781&view=rev
Log:
JEXL-60
Step 3 of 4
Changes to the test cases:
- Make all test cases inherit from new JexlTestCase class that allows easy programmatic execution of individual tests
- Accommodate for changes to parser and MethodKey class
- Added some much needed cache testing
Thanks to patch by Henri Biestro <hbiestro at gmail dot com>.
Added:
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java (with props)
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java (with props)
Modified:
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArithmeticTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArrayAccessTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/AssignTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BitwiseOperatorTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BlockTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/Foo.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ForEachTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IfTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IssuesTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MapLiteralTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MethodTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ParseFailuresTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptFactoryTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/UnifiedJEXLTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/WhileTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/parser/ParserTest.java
commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/util/introspection/MethodKeyTest.java
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArithmeticTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArithmeticTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArithmeticTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArithmeticTest.java Sat Aug 1 00:46:50 2009
@@ -22,9 +22,8 @@
import org.apache.commons.jexl.junit.Asserter;
-import junit.framework.TestCase;
-public class ArithmeticTest extends TestCase {
+public class ArithmeticTest extends JexlTestCase {
private Asserter asserter;
public void setUp() {
@@ -187,5 +186,4 @@
zeval == PERMS);
}
}
-
}
\ No newline at end of file
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArrayAccessTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArrayAccessTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArrayAccessTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ArrayAccessTest.java Sat Aug 1 00:46:50 2009
@@ -23,14 +23,13 @@
import org.apache.commons.jexl.junit.Asserter;
-import junit.framework.TestCase;
/**
* Tests for array access operator []
*
* @since 2.0
*/
-public class ArrayAccessTest extends TestCase {
+public class ArrayAccessTest extends JexlTestCase {
private Asserter asserter;
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/AssignTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/AssignTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/AssignTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/AssignTest.java Sat Aug 1 00:46:50 2009
@@ -16,15 +16,13 @@
*/
package org.apache.commons.jexl;
-import junit.framework.TestCase;
-
/**
* Test cases for the if statement.
*
* @author Dion Gillard
* @since 1.1
*/
-public class AssignTest extends TestCase {
+public class AssignTest extends JexlTestCase {
static JexlEngine JEXL = new JexlEngine();
static {
JEXL.setSilent(false);
@@ -178,9 +176,5 @@
o = jc.getVars().get("x.y.z");
assertEquals("Should be bar", "bar", o);
}
-
- public static void main(String[] args) throws Exception {
- new AssignTest("debug").testUtil();
- //new AssignTest("debug").testArray();
- }
+
}
\ No newline at end of file
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BitwiseOperatorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BitwiseOperatorTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BitwiseOperatorTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BitwiseOperatorTest.java Sat Aug 1 00:46:50 2009
@@ -17,14 +17,13 @@
package org.apache.commons.jexl;
-import junit.framework.TestCase;
/**
* Tests for the bitwise operators.
* @author Dion Gillard
* @since 1.1
*/
-public class BitwiseOperatorTest extends TestCase {
+public class BitwiseOperatorTest extends JexlTestCase {
/**
* Create the named test.
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BlockTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BlockTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BlockTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/BlockTest.java Sat Aug 1 00:46:50 2009
@@ -16,12 +16,11 @@
*/
package org.apache.commons.jexl;
-import junit.framework.TestCase;
/**
* Tests for blocks
* @since 1.1
*/
-public class BlockTest extends TestCase {
+public class BlockTest extends JexlTestCase {
/**
* Create the test
Added: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java?rev=799781&view=auto
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java (added)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java Sat Aug 1 00:46:50 2009
@@ -0,0 +1,572 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.jexl;
+
+import java.util.Map;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Verifies cache & tryExecute
+ */
+public class CacheTest extends JexlTestCase {
+ public static Test suite() {
+ return new TestSuite(CacheTest.class);
+ }
+
+ public CacheTest(String testName) {
+ super(testName);
+ }
+ static JexlEngine jexl = new JexlEngine();
+
+ static {
+ jexl.setLenient(false);
+ jexl.setSilent(false);
+ }
+ static int LOOPS = 1024;
+ // A pseudo random mix of accessors
+ static int[] MIX = {
+ 0, 0, 3, 3, 4, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 1, 2, 2, 2,
+ 3, 3, 3, 4, 4, 4, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 2, 2, 3, 3, 0
+ };
+
+ public static class Cached {
+ public String compute(String arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ return getClass().getSimpleName() + "@s#" + arg;
+ }
+
+ public String compute(String arg0, String arg1) {
+ if (arg0 == null) {
+ arg0 = "na";
+ }
+ if (arg1 == null) {
+ arg1 = "na";
+ }
+ return getClass().getSimpleName() + "@s#" + arg0 + ",s#" + arg1;
+ }
+
+ public String compute(Integer arg) {
+ return getClass().getSimpleName() + "@i#" + arg;
+ }
+
+ public String compute(float arg) {
+ return getClass().getSimpleName() + "@f#" + arg;
+ }
+
+ public String compute(int arg0, int arg1) {
+ return getClass().getSimpleName() + "@i#" + arg0 + ",i#" + arg1;
+ }
+
+ public String ambiguous(Integer arg0, int arg1) {
+ return getClass().getSimpleName() + "!i#" + arg0 + ",i#" + arg1;
+ }
+
+ public String ambiguous(int arg0, Integer arg1) {
+ return getClass().getSimpleName() + "!i#" + arg0 + ",i#" + arg1;
+ }
+
+ public static String COMPUTE(String arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ return "CACHED@s#" + arg;
+ }
+
+ public static String COMPUTE(String arg0, String arg1) {
+ if (arg0 == null) {
+ arg0 = "na";
+ }
+ if (arg1 == null) {
+ arg1 = "na";
+ }
+ return "CACHED@s#" + arg0 + ",s#" + arg1;
+ }
+
+ public static String COMPUTE(int arg) {
+ return "CACHED@i#" + arg;
+ }
+
+ public static String COMPUTE(int arg0, int arg1) {
+ return "CACHED@i#" + arg0 + ",i#" + arg1;
+ }
+ }
+
+ public static class Cached0 extends Cached {
+ protected String value = "Cached0:new";
+ protected Boolean flag = Boolean.FALSE;
+
+ public Cached0() {
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ value = "Cached0:" + arg;
+ }
+
+ public void setFlag(boolean b) {
+ flag = b;
+ }
+
+ public boolean isFlag() {
+ return flag;
+ }
+ }
+
+ public static class Cached1 extends Cached0 {
+ @Override
+ public void setValue(String arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ value = "Cached1:" + arg;
+ }
+ }
+
+ public static class Cached2 extends Cached {
+ boolean flag = false;
+ protected String value;
+
+ public Cached2() {
+ value = "Cached2:new";
+ }
+
+ public Object get(String prop) {
+ if ("value".equals(prop)) {
+ return value;
+ } else if ("flag".equals(prop)) {
+ return flag;
+ }
+ throw new RuntimeException("no such property");
+ }
+
+ public void put(String p, Object v) {
+ if (v == null) {
+ v = "na";
+ }
+ if ("value".equals(p)) {
+ value = getClass().getSimpleName() + ":" + v;
+ } else if ("flag".equals(p)) {
+ flag = Boolean.parseBoolean(v.toString());
+ } else {
+ throw new RuntimeException("no such property");
+ }
+ }
+ }
+
+ public static class Cached3 extends java.util.TreeMap<String, Object> {
+ boolean flag = false;
+
+ public Cached3() {
+ put("value", "Cached3:new");
+ put("flag", "false");
+ }
+
+ @Override
+ public Object get(Object key) {
+ return super.get(key.toString());
+ }
+
+ @Override
+ public Object put(String key, Object arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ arg = "Cached3:" + arg;
+ return super.put(key, arg);
+ }
+
+ public void setflag(boolean b) {
+ flag = b;
+ }
+
+ public boolean isflag() {
+ return flag;
+ }
+ }
+
+ public static class Cached4 extends java.util.ArrayList<String> {
+ public Cached4() {
+ super.add("Cached4:new");
+ super.add("false");
+ }
+
+ public String getValue() {
+ return super.get(0);
+ }
+
+ public void setValue(String arg) {
+ if (arg == null) {
+ arg = "na";
+ }
+ super.set(0, "Cached4:" + arg);
+ }
+
+ public void setflag(Boolean b) {
+ super.set(1, b.toString());
+ }
+
+ public boolean isflag() {
+ return Boolean.parseBoolean(super.get(1));
+ }
+ }
+
+ static class TestCacheArguments {
+ Cached0 c0 = new Cached0();
+ Cached1 c1 = new Cached1();
+ Cached2 c2 = new Cached2();
+ Cached3 c3 = new Cached3();
+ Cached4 c4 = new Cached4();
+ Object[] ca = {
+ c0, c1, c2, c3, c4
+ };
+ Object value = null;
+ }
+
+ void doAssign(TestCacheArguments x, int loops, boolean cache) throws Exception {
+ if (loops == 0) {
+ loops = MIX.length;
+ }
+ if (cache) {
+ jexl.setCache(32);
+ } else {
+ jexl.setCache(0);
+ }
+ JexlContext jc = JexlHelper.createContext();
+ Map<String, Object> vars = jc.getVars();
+ Expression cacheGetValue = jexl.createExpression("cache.value");
+ Expression cacheSetValue = jexl.createExpression("cache.value = value");
+ Object result;
+
+ for (int l = 0; l < loops; ++l) {
+ int mix = MIX[l % MIX.length];
+
+ vars.put("cache", x.ca[mix]);
+ vars.put("value", x.value);
+ result = cacheSetValue.evaluate(jc);
+ if (x.value == null) {
+ assertNull(cacheSetValue.toString(), result);
+ } else {
+ assertEquals(cacheSetValue.toString(), x.value, result);
+ }
+
+ result = cacheGetValue.evaluate(jc);
+ if (x.value == null) {
+ assertEquals(cacheGetValue.toString(), "Cached" + mix + ":na", result);
+ } else {
+ assertEquals(cacheGetValue.toString(), "Cached" + mix + ":" + x.value, result);
+ }
+
+ }
+ }
+
+ public void testNullAssignNoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ doAssign(args, LOOPS, false);
+ }
+
+ public void testNullAssignCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ doAssign(args, LOOPS, true);
+ }
+
+ public void testAssignNoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = "foo";
+ doAssign(args, LOOPS, false);
+ }
+
+ public void testAssignCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = "foo";
+ doAssign(args, LOOPS, true);
+ }
+
+ void doAssignBoolean(TestCacheArguments x, int loops, boolean cache) throws Exception {
+ if (loops == 0) {
+ loops = MIX.length;
+ }
+ if (cache) {
+ jexl.setCache(32);
+ } else {
+ jexl.setCache(0);
+ }
+ JexlContext jc = JexlHelper.createContext();
+ Map<String, Object> vars = jc.getVars();
+ Expression cacheGetValue = jexl.createExpression("cache.flag");
+ Expression cacheSetValue = jexl.createExpression("cache.flag = value");
+ Object result;
+
+ for (int l = 0; l < loops; ++l) {
+ int mix = MIX[l % MIX.length];
+
+ vars.put("cache", x.ca[mix]);
+ vars.put("value", x.value);
+ result = cacheSetValue.evaluate(jc);
+ assertEquals(cacheSetValue.toString(), x.value, result);
+
+ result = cacheGetValue.evaluate(jc);
+ assertEquals(cacheGetValue.toString(), x.value, result);
+
+ }
+ }
+
+ public void testAssignBooleanNoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = Boolean.TRUE;
+ doAssignBoolean(args, LOOPS, false);
+ }
+
+ public void testAssignBooleanCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = Boolean.TRUE;
+ doAssignBoolean(args, LOOPS, true);
+ }
+
+ void doAssignList(TestCacheArguments x, int loops, boolean cache) throws Exception {
+ if (loops == 0) {
+ loops = MIX.length;
+ }
+ if (cache) {
+ jexl.setCache(32);
+ } else {
+ jexl.setCache(0);
+ }
+ JexlContext jc = JexlHelper.createContext();
+ Map<String, Object> vars = jc.getVars();
+ Expression cacheGetValue = jexl.createExpression("cache.0");
+ Expression cacheSetValue = jexl.createExpression("cache[0] = value");
+ Object result;
+
+ for (int l = 0; l < loops; ++l) {
+ int mix = MIX[l % MIX.length] % x.ca.length;
+
+ vars.put("cache", x.ca[mix]);
+ vars.put("value", x.value);
+ result = cacheSetValue.evaluate(jc);
+ assertEquals(cacheSetValue.toString(), x.value, result);
+
+ result = cacheGetValue.evaluate(jc);
+ assertEquals(cacheGetValue.toString(), x.value, result);
+
+ }
+ }
+
+ public void testAssignListNoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = "foo";
+ java.util.ArrayList<String> c1 = new java.util.ArrayList<String>(2);
+ c1.add("foo");
+ c1.add("bar");
+ args.ca = new Object[]{
+ new String[]{"one", "two"},
+ c1
+ };
+ doAssignList(args, LOOPS, false);
+ }
+
+ public void testAssignListCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.value = "foo";
+ java.util.ArrayList<String> c1 = new java.util.ArrayList<String>(2);
+ c1.add("foo");
+ c1.add("bar");
+ args.ca = new Object[]{
+ new String[]{"one", "two"},
+ c1
+ };
+ doAssignList(args, LOOPS, true);
+ }
+
+ void doCompute(TestCacheArguments x, int loops, boolean cache) throws Exception {
+ if (loops == 0) {
+ loops = MIX.length;
+ }
+ if (cache) {
+ jexl.setCache(32);
+ } else {
+ jexl.setCache(0);
+ }
+ JexlContext jc = JexlHelper.createContext();
+ Map<String, Object> vars = jc.getVars();
+ jexl.setDebug(true);
+ Expression compute2 = jexl.createExpression("cache.compute(a0, a1)");
+ Expression compute1 = jexl.createExpression("cache.compute(a0)");
+ Expression compute1null = jexl.createExpression("cache.compute(a0)");
+ Expression ambiguous = jexl.createExpression("cache.ambiguous(a0, a1)");
+ jexl.setDebug(false);
+ Object result = null;
+ String expected = null;
+ for (int l = 0; l < loops; ++l) {
+ int mix = MIX[l % MIX.length] % x.ca.length;
+
+ vars.put("cache", x.ca[mix]);
+ if (x.value instanceof String) {
+ vars.put("a0", "S0");
+ vars.put("a1", "S1");
+ expected = "Cached" + mix + "@s#S0,s#S1";
+ } else if (x.value instanceof Integer) {
+ vars.put("a0", 7);
+ vars.put("a1", 9);
+ expected = "Cached" + mix + "@i#7,i#9";
+ } else {
+ fail("unexpected value type");
+ }
+ result = compute2.evaluate(jc);
+ assertEquals(compute2.toString(), expected, result);
+
+ if (x.value instanceof Integer) {
+ try {
+ vars.put("a0", (short) 17);
+ vars.put("a1", (short) 19);
+ result = ambiguous.evaluate(jc);
+ fail("should have thrown an exception");
+ } catch (JexlException xany) {
+ // throws due to ambiguous exception
+ }
+ }
+
+ if (x.value instanceof String) {
+ vars.put("a0", "X0");
+ expected = "Cached" + mix + "@s#X0";
+ } else if (x.value instanceof Integer) {
+ vars.put("a0", 5);
+ expected = "Cached" + mix + "@i#5";
+ } else {
+ fail("unexpected value type");
+ }
+ result = compute1.evaluate(jc);
+ assertEquals(compute1.toString(), expected, result);
+
+ try {
+ vars.put("a0", null);
+ jexl.setDebug(true);
+ result = compute1null.evaluate(jc);
+ fail("should have thrown an exception");
+ } catch (JexlException xany) {
+ // throws due to ambiguous exception
+ String sany = xany.getMessage();
+ String tname = getClass().getName();
+ if (!sany.startsWith(tname)) {
+ fail("debug mode should carry caller information, "
+ + sany +", "
+ + tname);
+ }
+ }
+ finally {
+ jexl.setDebug(false);
+ }
+ }
+ }
+
+ public void testComputeNoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.ca = new Object[]{
+ args.c0, args.c1, args.c2
+ };
+ args.value = new Integer(2);
+ doCompute(args, LOOPS, false);
+ }
+
+ public void testComputeCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.ca = new Object[]{
+ args.c0, args.c1, args.c2
+ };
+ args.value = new Integer(2);
+ doCompute(args, LOOPS, true);
+ }
+
+ void doCOMPUTE(TestCacheArguments x, int loops, boolean cache) throws Exception {
+ if (loops == 0) {
+ loops = MIX.length;
+ }
+ if (cache) {
+ jexl.setCache(32);
+ } else {
+ jexl.setCache(0);
+ }
+ JexlContext jc = JexlHelper.createContext();
+ Map<String, Object> vars = jc.getVars();
+ java.util.Map<String, Object> funcs = new java.util.HashMap<String, Object>();
+ jexl.setFunctions(funcs);
+ Expression compute2 = jexl.createExpression("cached:COMPUTE(a0, a1)");
+ Expression compute1 = jexl.createExpression("cached:COMPUTE(a0)");
+ Object result = null;
+ String expected = null;
+ for (int l = 0; l < loops; ++l) {
+ int mix = MIX[l % MIX.length] % x.ca.length;
+
+ funcs.put("cached", x.ca[mix]);
+ if (x.value instanceof String) {
+ vars.put("a0", "S0");
+ vars.put("a1", "S1");
+ expected = "CACHED@s#S0,s#S1";
+ } else if (x.value instanceof Integer) {
+ vars.put("a0", 7);
+ vars.put("a1", 9);
+ expected = "CACHED@i#7,i#9";
+ } else {
+ fail("unexpected value type");
+ }
+ result = compute2.evaluate(jc);
+ assertEquals(compute2.toString(), expected, result);
+
+ if (x.value instanceof String) {
+ vars.put("a0", "X0");
+ expected = "CACHED@s#X0";
+ } else if (x.value instanceof Integer) {
+ vars.put("a0", 5);
+ expected = "CACHED@i#5";
+ } else {
+ fail("unexpected value type");
+ }
+ result = compute1.evaluate(jc);
+ assertEquals(compute1.toString(), expected, result);
+ }
+ }
+
+ public void testCOMPUTENoCache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.ca = new Object[]{
+ Cached.class, Cached1.class, Cached2.class
+ };
+ args.value = new Integer(2);
+ doCOMPUTE(args, LOOPS, false);
+ }
+
+ public void testCOMPUTECache() throws Exception {
+ TestCacheArguments args = new TestCacheArguments();
+ args.ca = new Object[]{
+ Cached.class, Cached1.class, Cached2.class
+ };
+ args.value = new Integer(2);
+ doCOMPUTE(args, LOOPS, true);
+ }
+
+ public static void main(String[] args) throws Exception {
+ new CacheTest("debug").runTest("testNew");
+ }
+}
Propchange: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/CacheTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/Foo.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/Foo.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/Foo.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/Foo.java Sat Aug 1 00:46:50 2009
@@ -30,6 +30,7 @@
private boolean beenModified = false;
private String property1 = "some value";
+ public Foo() {}
public String bar()
{
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ForEachTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ForEachTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ForEachTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ForEachTest.java Sat Aug 1 00:46:50 2009
@@ -22,14 +22,13 @@
import java.util.Map;
import java.util.StringTokenizer;
-import junit.framework.TestCase;
/**
* Tests for the foreach statement
* @author Dion Gillard
* @since 1.1
*/
-public class ForEachTest extends TestCase {
+public class ForEachTest extends JexlTestCase {
/** create a named test */
public ForEachTest(String name) {
@@ -123,7 +122,4 @@
assertEquals("Result is not last evaluated expression", "brie", o);
}
- public static void main(String[] args) throws Exception {
- new ForEachTest("").testForEachWithEmptyStatement();
- }
}
\ No newline at end of file
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IfTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IfTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IfTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IfTest.java Sat Aug 1 00:46:50 2009
@@ -17,7 +17,6 @@
package org.apache.commons.jexl;
-import junit.framework.TestCase;
/**
* Test cases for the if statement.
@@ -25,7 +24,7 @@
* @author Dion Gillard
* @since 1.1
*/
-public class IfTest extends TestCase {
+public class IfTest extends JexlTestCase {
public IfTest(String testName) {
super(testName);
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IssuesTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IssuesTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IssuesTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/IssuesTest.java Sat Aug 1 00:46:50 2009
@@ -17,12 +17,11 @@
package org.apache.commons.jexl;
import java.util.Map;
-import junit.framework.TestCase;
/**
* Test cases for reported issues
*/
-public class IssuesTest extends TestCase {
+public class IssuesTest extends JexlTestCase {
@Override
public void setUp() throws Exception {
@@ -183,8 +182,5 @@
}
}
}
- public static void main(String[] args) throws Exception {
- new IssuesTest().test52base();
- }
}
\ No newline at end of file
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTest.java Sat Aug 1 00:46:50 2009
@@ -31,7 +31,6 @@
import java.util.Set;
import junit.framework.Test;
-import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.commons.jexl.parser.ParseException;
@@ -44,7 +43,7 @@
* @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
* @version $Id$
*/
-public class JexlTest extends TestCase
+public class JexlTest extends JexlTestCase
{
protected static final String METHOD_STRING = "Method string";
protected static final String GET_METHOD_STRING = "GetMethod string";
@@ -262,6 +261,26 @@
}
/**
+ * test the new function e.g constructor invocation
+ */
+ public void testNew() throws Exception {
+ JexlContext jc = JexlHelper.createContext();
+ jc.getVars().put("double", Double.class);
+ jc.getVars().put("foo", "org.apache.commons.jexl.Foo");
+ Expression expr;
+ Object value;
+ expr = ExpressionFactory.createExpression("new(double, 1)");
+ value = expr.evaluate(jc);
+ assertEquals(expr.toString(), new Double(1.0), value);
+ expr = ExpressionFactory.createExpression("new('java.lang.Float', 100)");
+ value = expr.evaluate(jc);
+ assertEquals(expr.toString(), new Float(100.0), value);
+ expr = ExpressionFactory.createExpression("new(foo).quux");
+ value = expr.evaluate(jc);
+ assertEquals(expr.toString(), "Repeat : quux", value);
+ }
+
+ /**
* test some simple mathematical calculations
*/
public void testCalculations()
@@ -694,7 +713,7 @@
Foo foo = new Foo();
jc.getVars().put("foo", foo);
Parser parser = new Parser(new StringReader(";"));
- parser.parse(new StringReader("aString = 'World';"));
+ parser.parse(new StringReader("aString = 'World';"), null);
assertExpression(jc, "hello = 'world'", "world");
assertEquals("hello variable not changed", "world", jc.getVars().get("hello"));
@@ -726,6 +745,72 @@
assertExpression(JexlHelper.createContext(), "myvar == 'Użytkownik'", Boolean.FALSE);
}
+ public static final class Duck {
+ int user = 10;
+ public Integer get(String val) {
+ if ("zero".equals(val))
+ return 0;
+ if ("one".equals(val))
+ return 1;
+ if ("user".equals(val))
+ return user;
+ return -1;
+ }
+ public void put(String val, Object value) {
+ if ("user".equals(val)) {
+ if ("zero".equals(value))
+ user = 0;
+ else if ("one".equals(value))
+ user = 1;
+ else
+ user = value instanceof Integer? (Integer) value : -1;
+ }
+ }
+ }
+
+ public void testDuck() throws Exception {
+ JexlEngine jexl = new JexlEngine();
+ JexlContext jc = JexlHelper.createContext();
+ jc.getVars().put("duck", new Duck());
+ Expression expr;
+ Object result;
+ expr = jexl.createExpression("duck.zero");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 0, result);
+ expr = jexl.createExpression("duck.one");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 1, result);
+ expr = jexl.createExpression("duck.user = 20");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 20, result);
+ expr = jexl.createExpression("duck.user");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 20, result);
+ expr = jexl.createExpression("duck.user = 'zero'");
+ result = expr.evaluate(jc);
+ expr = jexl.createExpression("duck.user");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 0, result);
+ }
+
+ public void testArray() throws Exception {
+ int[] array = { 100, 101 , 102 };
+ JexlEngine jexl = new JexlEngine();
+ JexlContext jc = JexlHelper.createContext();
+ jc.getVars().put("array", array);
+ Expression expr;
+ Object result;
+ expr = jexl.createExpression("array.1");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 101, result);
+ expr = jexl.createExpression("array[1] = 1010");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 1010, result);
+ expr = jexl.createExpression("array.0");
+ result = expr.evaluate(jc);
+ assertEquals(expr.toString(), 100, result);
+ }
+
/**
* Asserts that the given expression returns the given value when applied to the
* given context
@@ -737,16 +822,8 @@
assertEquals(expression, expected, actual);
}
-
- /**
- * Helps in debugging the testcases when working with it
- *
- */
- public static void main(String[] args)
- throws Exception
- {
- JexlTest jt = new JexlTest("foo");
- jt.testEmpty();
+ public static void main(String[] args) throws Exception {
+ new JexlTest("debug").runTest("testNew");
}
}
\ No newline at end of file
Added: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java?rev=799781&view=auto
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java (added)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java Sat Aug 1 00:46:50 2009
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009 henri.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * under the License.
+ */
+
+package org.apache.commons.jexl;
+import java.lang.reflect.Method;
+import junit.framework.TestCase;
+/**
+ * Implements a runTest method to dynamically invoke a test,
+ * wrapping the call with setUp(), tearDown() calls.
+ * Eases the implementation of main methods to debug.
+ */
+public class JexlTestCase extends TestCase {
+ private static final Class<?>[] noParms = {};
+
+ public JexlTestCase(String name) {
+ super(name);
+ }
+ public JexlTestCase() {
+ super();
+ }
+
+ public void runTest(String name) throws Exception {
+ if ("runTest".equals(name)) {
+ return;
+ }
+ Method method = null;
+ try {
+ method = this.getClass().getDeclaredMethod(name, noParms);
+ }
+ catch(Exception xany) {
+ fail("no such test: " + name);
+ return;
+ }
+ try {
+ this.setUp();
+ method.invoke(this);
+ } finally {
+ this.tearDown();
+ }
+ }
+
+ /*public void testRunTest() throws Exception {
+ new JexlTestCase().runTest("runTest");
+ }*/
+
+}
Propchange: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/JexlTestCase.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MapLiteralTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MapLiteralTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MapLiteralTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MapLiteralTest.java Sat Aug 1 00:46:50 2009
@@ -20,15 +20,13 @@
import java.util.HashMap;
import java.util.Map;
-import junit.framework.TestCase;
-
/**
* Tests for map literals
*
* @author Peter Royal
* @since 1.2
*/
-public class MapLiteralTest extends TestCase {
+public class MapLiteralTest extends JexlTestCase {
public void testLiteralWithStrings() throws Exception {
Expression e = ExpressionFactory.createExpression( "[ 'foo' => 'bar' ]" );
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MethodTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MethodTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MethodTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/MethodTest.java Sat Aug 1 00:46:50 2009
@@ -18,14 +18,12 @@
import org.apache.commons.jexl.junit.Asserter;
-import junit.framework.TestCase;
-
/**
* Tests for calling methods on objects
*
* @since 2.0
*/
-public class MethodTest extends TestCase {
+public class MethodTest extends JexlTestCase {
private Asserter asserter;
@@ -157,7 +155,7 @@
}
public static void main(String[] args) throws Exception {
- new MethodTest().testTopLevelCall();
+ new MethodTest().runTest("testNamespaceCall");
}
}
\ No newline at end of file
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ParseFailuresTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ParseFailuresTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ParseFailuresTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ParseFailuresTest.java Sat Aug 1 00:46:50 2009
@@ -16,8 +16,6 @@
*/
package org.apache.commons.jexl;
-import junit.framework.TestCase;
-
import org.apache.commons.jexl.parser.ParseException;
/**
@@ -27,7 +25,7 @@
*
* @since 1.1
*/
-public class ParseFailuresTest extends TestCase {
+public class ParseFailuresTest extends JexlTestCase {
/**
* Create the test.
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptFactoryTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptFactoryTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptFactoryTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptFactoryTest.java Sat Aug 1 00:46:50 2009
@@ -19,13 +19,12 @@
import java.io.File;
import java.net.URL;
-import junit.framework.TestCase;
/**
* Tests for ScriptFactory
* @since 1.1
*/
-public class ScriptFactoryTest extends TestCase {
+public class ScriptFactoryTest extends JexlTestCase {
static final String TEST1 = "src/test-scripts/test1.jexl";
/**
* Creates a new test case.
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/ScriptTest.java Sat Aug 1 00:46:50 2009
@@ -19,13 +19,11 @@
import java.io.File;
import java.net.URL;
-import junit.framework.TestCase;
-
/**
* Tests for Script
* @since 1.1
*/
-public class ScriptTest extends TestCase {
+public class ScriptTest extends JexlTestCase {
static final String TEST1 = "src/test-scripts/test1.jexl";
// test class for testScriptUpdatesContext
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/UnifiedJEXLTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/UnifiedJEXLTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/UnifiedJEXLTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/UnifiedJEXLTest.java Sat Aug 1 00:46:50 2009
@@ -18,11 +18,10 @@
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import junit.framework.TestCase;
/**
* Test cases for the UnifiedEL.
*/
-public class UnifiedJEXLTest extends TestCase {
+public class UnifiedJEXLTest extends JexlTestCase {
static JexlEngine JEXL = new JexlEngine();
static {
JEXL.setLenient(false);
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/WhileTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/WhileTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/WhileTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/WhileTest.java Sat Aug 1 00:46:50 2009
@@ -17,13 +17,12 @@
package org.apache.commons.jexl;
-import junit.framework.TestCase;
/**
* Tests for while statement.
* @author Dion Gillard
* @since 1.1
*/
-public class WhileTest extends TestCase {
+public class WhileTest extends JexlTestCase {
public WhileTest(String testName) {
super(testName);
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/parser/ParserTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/parser/ParserTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/parser/ParserTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/parser/ParserTest.java Sat Aug 1 00:46:50 2009
@@ -46,7 +46,7 @@
{
Parser parser = new Parser(new StringReader(";"));
- SimpleNode sn = parser.parse(new StringReader("foo = 1;"));
+ SimpleNode sn = parser.parse(new StringReader("foo = 1;"), null);
assertNotNull("parsed node is null", sn);
}
@@ -55,10 +55,10 @@
{
Parser parser = new Parser(new StringReader(";"));
- SimpleNode sn = parser.parse(new StringReader("foo = \"bar\";"));
+ SimpleNode sn = parser.parse(new StringReader("foo = \"bar\";"), null);
assertNotNull("parsed node is null", sn);
- sn = parser.parse(new StringReader("foo = 'bar';"));
+ sn = parser.parse(new StringReader("foo = 'bar';"), null);
assertNotNull("parsed node is null", sn);
}
Modified: commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/util/introspection/MethodKeyTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/util/introspection/MethodKeyTest.java?rev=799781&r1=799780&r2=799781&view=diff
==============================================================================
--- commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/util/introspection/MethodKeyTest.java (original)
+++ commons/proper/jexl/branches/2.0/src/test/org/apache/commons/jexl/util/introspection/MethodKeyTest.java Sat Aug 1 00:46:50 2009
@@ -75,15 +75,15 @@
};
/** from key to string */
- static java.util.Map<ClassMap.MethodKey, String> byKey;
+ static java.util.Map< MethodKey, String> byKey;
/** form string to key */
- static java.util.Map<String, ClassMap.MethodKey> byString;
+ static java.util.Map<String,MethodKey> byString;
/** the list of keys we generated & test against */
- static ClassMap.MethodKey[] keyList;
+ static MethodKey[] keyList;
/** Creates & inserts a key into the byKey & byString map */
static void setUpKey(String name, Class[] parms) {
- ClassMap.MethodKey key = new ClassMap.MethodKey(name, parms);
+ MethodKey key = new MethodKey(name, parms);
String str = key.toString();
byKey.put(key, str);
byString.put(str, key);
@@ -92,8 +92,8 @@
/** Generate a list of method*(prims*), method(prims*, prims*), method*(prims*,prims*,prims*) */
static {
- byKey = new java.util.HashMap<ClassMap.MethodKey, String>();
- byString = new java.util.HashMap<String, ClassMap.MethodKey>();
+ byKey = new java.util.HashMap< MethodKey, String>();
+ byString = new java.util.HashMap<String,MethodKey>();
for (int m = 0; m < METHODS.length; ++m) {
String method = METHODS[m];
for (int p0 = 0; p0 < PRIMS.length; ++p0) {
@@ -109,7 +109,7 @@
}
}
}
- keyList = byKey.keySet().toArray(new ClassMap.MethodKey[byKey.size()]);
+ keyList = byKey.keySet().toArray(new MethodKey[byKey.size()]);
}
/** Builds a string key */
@@ -124,26 +124,26 @@
/** Checks that a string key does exist */
void checkStringKey(String method, Class... params) {
String key = makeStringKey(method, params);
- ClassMap.MethodKey out = byString.get(key);
+ MethodKey out = byString.get(key);
assertTrue(out != null);
}
/** Builds a method key */
- ClassMap.MethodKey makeKey(String method, Class... params) {
- return new ClassMap.MethodKey(method, params);
+ MethodKey makeKey(String method, Class... params) {
+ return new MethodKey(method, params);
}
/** Checks that a method key exists */
void checkKey(String method, Class... params) {
- ClassMap.MethodKey key = makeKey(method, params);
+ MethodKey key = makeKey(method, params);
String out = byKey.get(key);
assertTrue(out != null);
}
public void testObjectKey() throws Exception {
for(int k = 0; k < keyList.length; ++k) {
- ClassMap.MethodKey ctl = keyList[k];
- ClassMap.MethodKey key = makeKey(ctl.getMethod(), ctl.getParameters());
+ MethodKey ctl = keyList[k];
+ MethodKey key = makeKey(ctl.getMethod(), ctl.getParameters());
String out = byKey.get(key);
assertTrue(out != null);
assertTrue(ctl.toString() + " != " + out, ctl.toString().equals(out));
@@ -153,9 +153,9 @@
public void testStringKey() throws Exception {
for(int k = 0; k < keyList.length; ++k) {
- ClassMap.MethodKey ctl = keyList[k];
+ MethodKey ctl = keyList[k];
String key = makeStringKey(ctl.getMethod(), ctl.getParameters());
- ClassMap.MethodKey out = byString.get(key);
+ MethodKey out = byString.get(key);
assertTrue(out != null);
assertTrue(ctl.toString() + " != " + key, ctl.equals(out));
}
@@ -167,8 +167,8 @@
public void testPerfKey() throws Exception {
for(int l = 0; l < LOOP; ++l)
for(int k = 0; k < keyList.length; ++k) {
- ClassMap.MethodKey ctl = keyList[k];
- ClassMap.MethodKey key = makeKey(ctl.getMethod(), ctl.getParameters());
+ MethodKey ctl = keyList[k];
+ MethodKey key = makeKey(ctl.getMethod(), ctl.getParameters());
String out = byKey.get(key);
assertTrue(out != null);
}
@@ -177,9 +177,9 @@
public void testPerfString() throws Exception {
for(int l = 0; l < LOOP; ++l)
for(int k = 0; k < keyList.length; ++k) {
- ClassMap.MethodKey ctl = keyList[k];
+ MethodKey ctl = keyList[k];
String key = makeStringKey(ctl.getMethod(), ctl.getParameters());
- ClassMap.MethodKey out = byString.get(key);
+ MethodKey out = byString.get(key);
assertTrue(out != null);
}
}