package ql.tests.ast; import org.junit.Test; import ql.ast.expression.*; import ql.tests.TestHelper; import ql.util.ParserHelper; import java.math.BigDecimal; import static org.junit.Assert.*; /** * Created by bore on 19/02/15. */ public class ConstantExpr { @Test public void intExpr() { IntExpr e = TestHelper.as(ParserHelper.ParseExpression("1"), IntExpr.class); assertNotNull(e); assertEquals(1, (long) e.getValue()); } @Test public void decExpr() { DecExpr e = TestHelper.as(ParserHelper.ParseExpression("1.2"), DecExpr.class); assertNotNull(e); assertTrue(new BigDecimal("1.2").compareTo(e.getValue()) == 0); } @Test public void decExprPartial() { DecExpr e = TestHelper.as(ParserHelper.ParseExpression(".2"), DecExpr.class); assertNotNull(e); assertTrue(new BigDecimal(".2").compareTo(e.getValue()) == 0); } @Test public void decExprZero() { DecExpr e = TestHelper.as(ParserHelper.ParseExpression("1.0"), DecExpr.class); assertNotNull(e); assertTrue(new BigDecimal("1.0").compareTo(e.getValue()) == 0); } @Test public void decExprLong() { DecExpr e = TestHelper.as(ParserHelper.ParseExpression("1234567.8987654321"), DecExpr.class); assertNotNull(e); assertTrue(new BigDecimal("1234567.8987654321").compareTo(e.getValue()) == 0); } @Test public void stringExprPlainRegQuotes() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression("\"string\""), StrExpr.class); assertNotNull(e); assertEquals("string", e.getValue()); } @Test public void stringExprDiffQuotes() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression("\"string\""), StrExpr.class); assertNotNull(e); assertEquals("string", e.getValue()); } @Test public void stringExprEmpty() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression("\"\""), StrExpr.class); assertNotNull(e); assertEquals("", e.getValue()); } @Test public void stringExprNestedQuotes() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression("\"str\\\"ing\""), StrExpr.class); assertNotNull(e); assertEquals("str\"ing", e.getValue()); } @Test public void stringExprMultipleNestedQuotes() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression( "\"This string contains \\\"multiple\\\" \\\"quotes\\\"\""), StrExpr.class); assertNotNull(e); assertEquals("This string contains \"multiple\" \"quotes\"", e.getValue()); } @Test public void stringExprMultipleDifferentNestedQuotes() { StrExpr e = TestHelper.as(ParserHelper.ParseExpression( "\"This string contains \\\"multiple\\\" \\\"quotes\\\"\""), StrExpr.class); assertNotNull(e); assertEquals("This string contains \"multiple\" \"quotes\"", e.getValue()); } @Test public void boolExprTrue() { BoolExpr e = TestHelper.as(ParserHelper.ParseExpression("true"), BoolExpr.class); assertNotNull(e); assertEquals(true, e.getValue()); } @Test public void boolExprFalse() { BoolExpr e = TestHelper.as(ParserHelper.ParseExpression("false"), BoolExpr.class); assertNotNull(e); assertEquals(false, e.getValue()); } @Test public void identifierExpr() { Ident e = TestHelper.as(ParserHelper.ParseExpression("any"), Ident.class); assertNotNull(e); } }