package org.docbag.expression.evaluator; import junit.framework.Assert; import org.docbag.Context; import org.docbag.DefaultContext; import org.docbag.expression.EvaluatedExpression; import org.docbag.expression.RuntimeExpression; import org.junit.Test; /** * PatternsAwareExpressionEvaluatorTest * * @author Jakub Torbicki */ public class PatternsAwareExpressionEvaluatorTest { private static final String KEY_CONTEXT = "key"; private static final String VALUE_CONTEXT = "value"; @Test public void testEvaluate() throws Exception { PatternsAwareExpressionEvaluator evaluator = new PatternsAwareExpressionEvaluator(); Assert.assertEquals("100", evaluator.evaluate(new EvaluatedExpression<String, String>("100", "100"))); } @Test(expected = EvaluatorException.class) public void testEvaluateRuntimeFails() throws Exception { PatternsAwareExpressionEvaluator evaluator = new PatternsAwareExpressionEvaluator(); evaluator.evaluate(new RuntimeExpression<String, String>("context('name')", evaluator)); } @Test(expected = EvaluatorException.class) public void testEvaluateRuntimeEmpty() throws Exception { PatternsAwareExpressionEvaluator evaluator = new PatternsAwareExpressionEvaluator(); evaluator.evaluate(getContext(), new RuntimeExpression<String, String>("context('invalid_input')", evaluator)); } @Test public void testEvaluateRuntime() throws Exception { PatternsAwareExpressionEvaluator evaluator = new PatternsAwareExpressionEvaluator(); Assert.assertEquals(VALUE_CONTEXT, evaluator.evaluate(getContext(), new RuntimeExpression<String, String>("context('" + KEY_CONTEXT + "')", evaluator))); } public Context<String, Object> getContext() { Context<String, Object> context = new DefaultContext(); context.put(KEY_CONTEXT, VALUE_CONTEXT); return context; } }