package org.docbag.expression.parser; import junit.framework.Assert; import org.docbag.expression.EvaluatedExpression; import org.docbag.expression.Expression; import org.docbag.expression.ExpressionFactory; import org.docbag.template.TemplatePatterns; import org.junit.Test; /** * RegExpExpressionParserTest * * @author Jakub Torbicki */ public class RegExpExpressionParserTest { private static final String expressionPattern = TemplatePatterns.EXPRESSION_PATTERN; private static final String expression1 = "#{asd}"; private static final String expression2 = "#{}"; private static final String expression3 = "{asd}"; private static final String expression4 = "#{asd"; private static final String expression5 = "#{context('asd')}"; private static final String expression6 = null; private static final String expression7 = ""; private static final String expression8 = "#{chart('name', 100, 100)}"; private static final String expression9 = "#{chart('name',100,100)}"; @Test public void testIsExpression() throws Exception { RegExpExpressionParser parser = new RegExpExpressionParser(expressionPattern, getFactory()); Assert.assertTrue(parser.isExpression(expression1)); Assert.assertFalse(parser.isExpression(expression2)); Assert.assertFalse(parser.isExpression(expression3)); Assert.assertFalse(parser.isExpression(expression4)); Assert.assertTrue(parser.isExpression(expression5)); Assert.assertFalse(parser.isExpression(expression7)); Assert.assertTrue(parser.isExpression(expression8)); Assert.assertTrue(parser.isExpression(expression9)); } @Test(expected = NullPointerException.class) public void testIsExpressionNull() throws Exception { RegExpExpressionParser parser = new RegExpExpressionParser(expressionPattern, getFactory()); parser.isExpression(expression6); } @Test public void testParseExpression() throws Exception { RegExpExpressionParser parser = new RegExpExpressionParser(expressionPattern, getFactory()); Assert.assertEquals("asd", parser.parseExpression(expression1).getSource()); Assert.assertEquals("", parser.parseExpression(expression2).getSource()); Assert.assertEquals("", parser.parseExpression(expression3).getSource()); Assert.assertEquals("", parser.parseExpression(expression4).getSource()); Assert.assertEquals("context('asd')", parser.parseExpression(expression5).getSource()); Assert.assertEquals("", parser.parseExpression(expression7).getSource()); } @Test(expected = NullPointerException.class) public void testParseExpressionNull() throws Exception { RegExpExpressionParser parser = new RegExpExpressionParser(expressionPattern, getFactory()); parser.parseExpression(expression6); } private ExpressionFactory getFactory() { return new ExpressionFactory<String, String>() { public Expression createExpression(String o) { return new EvaluatedExpression(o, o); } }; } }