package ch.vorburger.el.engine.tests; import java.math.BigDecimal; import org.eclipse.xtext.junit4.InjectWith; import org.eclipse.xtext.junit4.XtextRunner; import org.eclipse.xtext.resource.XtextResourceSet; import org.junit.Test; import org.junit.runner.RunWith; import ch.vorburger.el.ELInjectorProvider; import ch.vorburger.el.engine.ExpressionContext; import ch.vorburger.el.engine.ExpressionFactory; /** * Basic Tests for the Expression Engine. * These tests will assert corrected of Java Code generated from EL expressions. * * @author Michael Vorburger */ @RunWith(XtextRunner.class) @InjectWith(ELInjectorProvider.class) public class BasicExpressionGeneratorTest extends AbstractExpressionGeneratorTestBase { private ExpressionContext context; public BasicExpressionGeneratorTest() { super(new ExpressionFactory()); XtextResourceSet resourceSet = expressionFactory.getInjector().getInstance(XtextResourceSet.class); context = new ExpressionContext(resourceSet); } @Test public void testNumberLiteral() throws Exception { checkGeneration("23.7", BigDecimal.class, context, "new java.math.BigDecimal(\"23.7\")"); } @Test public void testNotNull() throws Exception { checkGeneration("\"Saluton\" == null", Boolean.class, context, "com.google.common.base.Objects.equal(\"Saluton\", null)"); } @Test public void testIfExpression() throws Exception { checkGeneration("if (true) true else false", Boolean.class, context, "new org.eclipse.xtext.xbase.lib.Functions.Function0<Boolean>() {\n public Boolean apply() {\n boolean _xifexpression = false;\n if (true) {\n _xifexpression = true;\n } else {\n _xifexpression = false;\n }\n return _xifexpression;\n }\n}.apply()"); } }