Beispiel #1
0
        public void TestExpressionContextType(string value, Type expectedType)
        {
            Setup(value);

            CalcParser.ExpressionContext expression = this._calcParser.expression();
            Assert.AreEqual(expectedType, expression.GetType());
        }
        public void TestSngExpressions(string expr, string expectedQuery)
        {
            Setup(expr);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            QueryVisitor visitor = new QueryVisitor();
            string       query   = visitor.Visit(context);

            Assert.AreEqual(expectedQuery, query);
        }
Beispiel #3
0
        public void TestSrqtExpressions(string expression, double expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.AreEqual(expectedResult, result.ToDouble());
        }
        public void TestQueryVariablesOracle(string expr, string expectedQuery)
        {
            Setup(expr);

            CalcParser.ExpressionContext context = this._calcParser.expression();
            DbTranslator translator = new OracleTranslator();

            QueryVisitor visitor = new QueryVisitor(new TestMetadataResolver(), translator);
            string       query   = visitor.Visit(context);

            Assert.AreEqual(expectedQuery, query);
        }
Beispiel #5
0
        public void TestIntegerComplexExpressions(string expression, int expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.True(result.IsInteger);
            Assert.AreEqual(expectedResult, result.ToInteger());
        }
        public void TestMathConstants(string expr, string expectedQuery)
        {
            Setup(expr);

            CalcParser.ExpressionContext context = this._calcParser.expression();
            DbTranslator      translator         = Substitute.For <DbTranslator>();
            IMetadataResolver resolver           = Substitute.For <IMetadataResolver>();

            QueryVisitor visitor = new QueryVisitor(resolver, translator);
            string       query   = visitor.Visit(context);

            Assert.AreEqual(expectedQuery, query);
        }
        public void TestNormdFirebird(string expr, string expectedQuery)
        {
            Setup(expr);

            CalcParser.ExpressionContext context = this._calcParser.expression();
            DbTranslator      translator         = new FirebirdTranslator();
            IMetadataResolver resolver           = new TestMetadataResolver();

            QueryVisitor visitor = new QueryVisitor(resolver, translator);
            string       query   = visitor.Visit(context);

            Assert.AreEqual(expectedQuery, query);
        }
Beispiel #8
0
        public void TestDateExpressionsWithDateResult(string expression, string expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.True(result.IsDate);
            Assert.False(result.IsInteger);
            Assert.False(result.IsDouble);
            Assert.IsNotNull(result.ToDate());
            Assert.AreEqual(expectedResult, result.ToDate().Value.ToString("yyyy-MM-dd"));
        }
Beispiel #9
0
        public Argument Calculate(string expression)
        {
            AntlrInputStream inputStream = new AntlrInputStream(expression);
            CalcLexer        calcLexer   = new CalcLexer(inputStream);

            calcLexer.RemoveErrorListeners(); //removes the default console listener
            calcLexer.AddErrorListener(new ThrowExceptionErrorListener());

            CommonTokenStream commonTokenStream = new CommonTokenStream(calcLexer);
            CalcParser        parser            = new CalcParser(commonTokenStream);

            parser.RemoveErrorListeners(); //removes the default console listener
            parser.AddErrorListener(new ThrowExceptionErrorListener());

            CalcParser.ExpressionContext context = parser.expression();

            return(this._visitor.Visit(context));
        }
        public void TestStringFldlenExpressionsFirebird(string expr, string expectedQuery)
        {
            Setup(expr);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            DbTranslator      translator = new FirebirdTranslator();
            IMetadataResolver resolver   = Substitute.For <IMetadataResolver>();

            resolver
            .GetField(Arg.Any <string>())
            .Returns(callinfo => new FieldInfo
            {
                Name = callinfo.ArgAt <string>(0),
                Type = DFM_FIELD_TYPE.DFM_FT_STRING
            });

            QueryVisitor visitor = new QueryVisitor(resolver, translator);

            string query = visitor.Visit(context);

            Assert.AreEqual(expectedQuery, query);
        }
 /// <summary>
 /// Visit a parse tree produced by <see cref="CalcParser.expression"/>.
 /// <para>
 /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
 /// on <paramref name="context"/>.
 /// </para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 /// <return>The visitor result.</return>
 public virtual Result VisitExpression([NotNull] CalcParser.ExpressionContext context)
 {
     return(VisitChildren(context));
 }
Beispiel #12
0
 public override void EnterExpression([NotNull] CalcParser.ExpressionContext context)
 {
     base.EnterExpression(context);
 }
Beispiel #13
0
 private double WalkRight(CalcParser.ExpressionContext context)
 {
     return(Visit(context.GetRuleContext <CalcParser.ExpressionContext>(1)));
 }
 /// <summary>
 /// Exit a parse tree produced by <see cref="CalcParser.expression"/>.
 /// <para>The default implementation does nothing.</para>
 /// </summary>
 /// <param name="context">The parse tree.</param>
 public virtual void ExitExpression([NotNull] CalcParser.ExpressionContext context)
 {
 }