private void checkNumberError(String expression, SpelMessage expectedMessage) { try { SpelExpressionParser parser = new SpelExpressionParser(); parser.parseRaw(expression); fail(); } catch (ParseException ex) { assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(expectedMessage, spe.getMessageCode()); } }
if (ex.getMessageCode() != expectedMessage) { assertEquals("Failed to get expected message", expectedMessage, ex.getMessageCode());
@Test public void testStringLiterals_DoubleQuotes_spr9620_2() { try { new SpelExpressionParser().parseRaw("\"double quote: \\\"\\\".\""); fail("Should have failed"); } catch (SpelParseException spe) { assertEquals(17, spe.getPosition()); assertEquals(SpelMessage.UNEXPECTED_ESCAPE_CHAR, spe.getMessageCode()); } }
@Test public void testRogueTrailingDotCausesNPE_SPR6866() { try { new SpelExpressionParser().parseExpression("placeOfBirth.foo."); fail("Should have failed to parse"); } catch (SpelParseException ex) { assertEquals(SpelMessage.OOD, ex.getMessageCode()); assertEquals(16, ex.getPosition()); } }
@Test public void testPropertiesNested03() throws ParseException { try { new SpelExpressionParser().parseRaw("placeOfBirth.23"); fail(); } catch (SpelParseException spe) { assertEquals(SpelMessage.UNEXPECTED_DATA_AFTER_DOT, spe.getMessageCode()); assertEquals("23", spe.getInserts()[0]); } }
@Test public void AccessingFactoryBean_spr9511() { StandardEvaluationContext context = new StandardEvaluationContext(); context.setBeanResolver(new MyBeanResolver()); Expression expr = new SpelExpressionParser().parseRaw("@foo"); assertEquals("custard", expr.getValue(context)); expr = new SpelExpressionParser().parseRaw("&foo"); assertEquals("foo factory",expr.getValue(context)); try { expr = new SpelExpressionParser().parseRaw("&@foo"); fail("Illegal syntax, error expected"); } catch (SpelParseException spe) { assertEquals(SpelMessage.INVALID_BEAN_REFERENCE,spe.getMessageCode()); assertEquals(0,spe.getPosition()); } try { expr = new SpelExpressionParser().parseRaw("@&foo"); fail("Illegal syntax, error expected"); } catch (SpelParseException spe) { assertEquals(SpelMessage.INVALID_BEAN_REFERENCE,spe.getMessageCode()); assertEquals(0,spe.getPosition()); } }
assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(SpelMessage.MISSING_CONSTRUCTOR_ARGS, spe.getMessageCode()); assertEquals(10, spe.getPosition()); assertTrue(ex.getMessage().contains(ex.getExpressionString())); assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(SpelMessage.RUN_OUT_OF_ARGUMENTS, spe.getMessageCode()); assertEquals(10, spe.getPosition()); assertTrue(ex.getMessage().contains(ex.getExpressionString())); assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(SpelMessage.RUN_OUT_OF_ARGUMENTS, spe.getMessageCode()); assertEquals(10, spe.getPosition()); assertTrue(ex.getMessage().contains(ex.getExpressionString())); assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(SpelMessage.RUN_OUT_OF_ARGUMENTS, spe.getMessageCode()); assertEquals(10, spe.getPosition()); assertTrue(ex.getMessage().contains(ex.getExpressionString())); assertTrue(ex instanceof SpelParseException); SpelParseException spe = (SpelParseException) ex; assertEquals(SpelMessage.NON_TERMINATING_DOUBLE_QUOTED_STRING, spe.getMessageCode()); assertEquals(0, spe.getPosition()); assertTrue(ex.getMessage().contains(ex.getExpressionString()));
assertEquals(SpelMessage.INVALID_BEAN_REFERENCE, spe.getMessageCode());