提交 e9ddd715 编写于 作者: A Andy Clement

added support for long[] in stringValueOf() - plus an error reported if the...

added support for long[] in stringValueOf() - plus an error reported if the type passed in is not supported
上级 e2ffac9a
...@@ -312,22 +312,45 @@ public abstract class ExpressionTestCase extends TestCase { ...@@ -312,22 +312,45 @@ public abstract class ExpressionTestCase extends TestCase {
} }
} }
/**
* Produce a nice string representation of the input object.
*
* @param value object to be formatted
* @return a nice string
*/
public static String stringValueOf(Object value) { public static String stringValueOf(Object value) {
// do something nice for arrays // do something nice for arrays
if (value == null) if (value == null) {
return "null"; return "null";
}
if (value.getClass().isArray()) { if (value.getClass().isArray()) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (value.getClass().getComponentType().isPrimitive()) { if (value.getClass().getComponentType().isPrimitive()) {
// TODO 4 ought to support other primitives! Class<?> primitiveType = value.getClass().getComponentType();
int[] l = (int[]) value; if (primitiveType == Integer.TYPE) {
sb.append("int[").append(l.length).append("]{"); int[] l = (int[]) value;
for (int j = 0; j < l.length; j++) { sb.append("int[").append(l.length).append("]{");
if (j > 0) for (int j = 0; j < l.length; j++) {
sb.append(","); if (j > 0) {
sb.append(stringValueOf(l[j])); sb.append(",");
}
sb.append(stringValueOf(l[j]));
}
sb.append("}");
} else if (primitiveType == Long.TYPE) {
long[] l = (long[]) value;
sb.append("long[").append(l.length).append("]{");
for (int j = 0; j < l.length; j++) {
if (j > 0) {
sb.append(",");
}
sb.append(stringValueOf(l[j]));
}
sb.append("}");
} else {
throw new RuntimeException("Please implement support for type " + primitiveType.getName()
+ " in ExpressionTestCase.stringValueOf()");
} }
sb.append("}");
} else { } else {
List<Object> l = Arrays.asList((Object[]) value); List<Object> l = Arrays.asList((Object[]) value);
sb.append(value.getClass().getComponentType().getName()).append("[").append(l.size()).append("]{"); sb.append(value.getClass().getComponentType().getName()).append("[").append(l.size()).append("]{");
...@@ -347,29 +370,4 @@ public abstract class ExpressionTestCase extends TestCase { ...@@ -347,29 +370,4 @@ public abstract class ExpressionTestCase extends TestCase {
} }
} }
// protected void evaluateAndCheckError(String string, ELMessages expectedMessage, Object... otherProperties) {
// try {
// SpelExpression expr = (SpelExpression) parser.parseExpression(string);
// if (expr == null)
// fail("Parser returned null for expression");
// // expr.printAST(System.out);
// @SuppressWarnings("unused")
// Object value = expr.getValue(eContext);
// fail("Should have failed with message " + expectedMessage);
// } catch (ExpressionException ee) {
// ELException ex = (ELException) ee;
// if (expectedMessage != ex.getMessageUnformatted()) {
// System.out.println(ex.getMessage());
// ex.printStackTrace();
// assertEquals("Failed to get expected message", expectedMessage, ex.getMessageUnformatted());
// }
// if (otherProperties != null && otherProperties.length != 0) {
// // first one is expected position of the error within the string
// int pos = ((Integer) otherProperties[0]).intValue();
// assertEquals("Did not get correct position reported in error ", pos, ex.getPosition());
// }
// }
//
// }
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册