INT-866 added "method" variable to the SpEL context and also refactored ExpressionBinding and ExpressionSource (work in progress).

This commit is contained in:
Mark Fisher
2009-10-30 18:39:47 +00:00
parent e0871d2d46
commit 5ebafd8df9
7 changed files with 106 additions and 67 deletions

View File

@@ -108,19 +108,23 @@ public class MessagePublishingInterceptorTests {
private static class TestExpressionSource implements ExpressionSource {
public String getArgumentMapName(Method method) {
public String getMethodNameVariableName(Method method) {
return "m";
}
public String[] getArgumentNames(Method method) {
public String getArgumentMapVariableName(Method method) {
return "map";
}
public String[] getArgumentVariableNames(Method method) {
return new String[] { "a1", "a2"};
}
public String getReturnValueName(Method method) {
public String getReturnValueVariableName(Method method) {
return "r";
}
public String getExceptionName(Method method) {
public String getExceptionVariableName(Method method) {
return "x";
}

View File

@@ -36,16 +36,16 @@ public class MethodAnnotationExpressionSourceTests {
Method method = getMethod("methodWithExpressionAnnotationOnly", String.class, int.class);
String expressionString = source.getPayloadExpression(method);
assertEquals("testExpression1", expressionString);
assertEquals(2, source.getArgumentNames(method).length);
assertEquals("arg1", source.getArgumentNames(method)[0]);
assertEquals("arg2", source.getArgumentNames(method)[1]);
assertEquals(2, source.getArgumentVariableNames(method).length);
assertEquals("arg1", source.getArgumentVariableNames(method)[0]);
assertEquals("arg2", source.getArgumentVariableNames(method)[1]);
String[] headerStrings = source.getHeaderExpressions(method);
assertNotNull(headerStrings);
assertEquals(1, headerStrings.length);
assertEquals("", headerStrings[0]);
assertEquals(ExpressionSource.DEFAULT_ARGUMENT_MAP_NAME, source.getArgumentMapName(method));
assertEquals(ExpressionSource.DEFAULT_EXCEPTION_NAME, source.getExceptionName(method));
assertEquals(ExpressionSource.DEFAULT_RETURN_VALUE_NAME, source.getReturnValueName(method));
assertEquals(ExpressionSource.DEFAULT_ARGUMENT_MAP_VARIABLE_NAME, source.getArgumentMapVariableName(method));
assertEquals(ExpressionSource.DEFAULT_EXCEPTION_VARIABLE_NAME, source.getExceptionVariableName(method));
assertEquals(ExpressionSource.DEFAULT_RETURN_VALUE_VARIABLE_NAME, source.getReturnValueVariableName(method));
}
@Test
@@ -53,12 +53,12 @@ public class MethodAnnotationExpressionSourceTests {
Method method = getMethod("methodWithExpressionBinding", String.class, int.class);
String expressionString = source.getPayloadExpression(method);
assertEquals("testExpression2", expressionString);
assertEquals(2, source.getArgumentNames(method).length);
assertEquals("s", source.getArgumentNames(method)[0]);
assertEquals("i", source.getArgumentNames(method)[1]);
assertEquals("argz", source.getArgumentMapName(method));
assertEquals("x", source.getExceptionName(method));
assertEquals("result", source.getReturnValueName(method));
assertEquals(2, source.getArgumentVariableNames(method).length);
assertEquals("s", source.getArgumentVariableNames(method)[0]);
assertEquals("i", source.getArgumentVariableNames(method)[1]);
assertEquals("argz", source.getArgumentMapVariableName(method));
assertEquals("x", source.getExceptionVariableName(method));
assertEquals("result", source.getReturnValueVariableName(method));
}
@Test
@@ -88,7 +88,8 @@ public class MethodAnnotationExpressionSourceTests {
}
@Publisher("testExpression2")
@ExpressionBinding(argNames="s, i", argumentMapName="argz", exceptionName="x", returnValueName="result")
@ExpressionBinding(argumentVariableNames="s, i", argumentMapVariableName="argz",
exceptionVariableName="x", returnValueVariableName="result")
public void methodWithExpressionBinding(String arg1, int arg2) {
}