Polishing

This commit is contained in:
Juergen Hoeller 2014-01-16 18:28:50 +01:00
parent f532607d4b
commit 9aefa0334f
2 changed files with 35 additions and 30 deletions

View File

@ -175,6 +175,7 @@ public class SpelReproTests extends ExpressionTestCase {
return sb.toString();
}
@Override
public String toString() {
return "instance";
}
@ -559,24 +560,24 @@ public class SpelReproTests extends ExpressionTestCase {
// ---
private void checkTemplateParsing(String expression, String expectedValue) throws Exception {
checkTemplateParsing(expression,TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedValue);
checkTemplateParsing(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedValue);
}
private void checkTemplateParsing(String expression, ParserContext context, String expectedValue) throws Exception {
SpelExpressionParser parser = new SpelExpressionParser();
Expression expr = parser.parseExpression(expression,context);
assertEquals(expectedValue,expr.getValue(TestScenarioCreator.getTestEvaluationContext()));
assertEquals(expectedValue, expr.getValue(TestScenarioCreator.getTestEvaluationContext()));
}
private void checkTemplateParsingError(String expression,String expectedMessage) throws Exception {
checkTemplateParsingError(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT,expectedMessage);
private void checkTemplateParsingError(String expression, String expectedMessage) throws Exception {
checkTemplateParsingError(expression, TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT, expectedMessage);
}
private void checkTemplateParsingError(String expression,ParserContext context, String expectedMessage) throws Exception {
private void checkTemplateParsingError(String expression, ParserContext context, String expectedMessage) throws Exception {
SpelExpressionParser parser = new SpelExpressionParser();
try {
parser.parseExpression(expression,context);
fail("Should have failed");
parser.parseExpression(expression, context);
fail("Should have failed with message: " + expectedMessage);
}
catch (Exception ex) {
if (!ex.getMessage().equals(expectedMessage)) {
@ -587,17 +588,14 @@ public class SpelReproTests extends ExpressionTestCase {
}
private static final ParserContext DOLLARSQUARE_TEMPLATE_PARSER_CONTEXT = new ParserContext() {
@Override
public String getExpressionPrefix() {
return "$[";
}
@Override
public String getExpressionSuffix() {
return "]";
}
@Override
public boolean isTemplate() {
return true;
@ -826,6 +824,7 @@ public class SpelReproTests extends ExpressionTestCase {
a=s;
}
@Override
public String toString() {
return "D("+a+")";
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -16,12 +16,8 @@
package org.springframework.expression.spel;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.junit.Test;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.EvaluationException;
import org.springframework.expression.Expression;
@ -32,6 +28,8 @@ import org.springframework.expression.common.TemplateParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import static org.junit.Assert.*;
/**
* @author Andy Clement
* @author Juergen Hoeller
@ -68,8 +66,8 @@ public class TemplateExpressionParsingTests extends ExpressionTestCase {
}
};
@Test
@Test
public void testParsingSimpleTemplateExpression01() throws Exception {
SpelExpressionParser parser = new SpelExpressionParser();
Expression expr = parser.parseExpression("hello ${'world'}", DEFAULT_TEMPLATE_PARSER_CONTEXT);
@ -148,19 +146,22 @@ public class TemplateExpressionParsingTests extends ExpressionTestCase {
try {
ex.setValue(ctx, null);
fail();
} catch (EvaluationException ee) {
}
catch (EvaluationException ee) {
// success
}
try {
ex.setValue((Object)null, null);
fail();
} catch (EvaluationException ee) {
}
catch (EvaluationException ee) {
// success
}
try {
ex.setValue(ctx, null, null);
fail();
} catch (EvaluationException ee) {
}
catch (EvaluationException ee) {
// success
}
}
@ -192,15 +193,17 @@ public class TemplateExpressionParsingTests extends ExpressionTestCase {
try {
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#this<5]} ${listOfNumbersUpToTen.$[#this>5] world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
fail("Should have failed");
} catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 41: ${listOfNumbersUpToTen.$[#this>5] world",pe.getMessage());
}
catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 41: ${listOfNumbersUpToTen.$[#this>5] world", pe.getMessage());
}
try {
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#root.listOfNumbersUpToTen.$[#this%2==1==3]} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
fail("Should have failed");
} catch (ParseException pe) {
assertEquals("Found closing '}' at position 74 but most recent opening is '[' at position 30",pe.getMessage());
}
catch (ParseException pe) {
assertEquals("Found closing '}' at position 74 but most recent opening is '[' at position 30", pe.getMessage());
}
}
@ -234,21 +237,24 @@ public class TemplateExpressionParsingTests extends ExpressionTestCase {
try {
parser.parseExpression("hello ${'world'", DEFAULT_TEMPLATE_PARSER_CONTEXT);
fail("Should have failed");
} catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 6: ${'world'",pe.getMessage());
}
catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 6: ${'world'", pe.getMessage());
assertEquals("hello ${'world'",pe.getExpressionString());
}
try {
parser.parseExpression("hello ${'wibble'${'world'}", DEFAULT_TEMPLATE_PARSER_CONTEXT);
fail("Should have failed");
} catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 6: ${'wibble'${'world'}",pe.getMessage());
}
catch (ParseException pe) {
assertEquals("No ending suffix '}' for expression starting at character 6: ${'wibble'${'world'}", pe.getMessage());
}
try {
parser.parseExpression("hello ${} world", DEFAULT_TEMPLATE_PARSER_CONTEXT);
fail("Should have failed");
} catch (ParseException pe) {
assertEquals("No expression defined within delimiter '${}' at character 6",pe.getMessage());
}
catch (ParseException pe) {
assertEquals("No expression defined within delimiter '${}' at character 6", pe.getMessage());
}
}