Ejemplo n.º 1
0
        public void TestBooleanScalarExpressionAccept()
        {
            Mock <KoraliumSqlVisitor> mock = new Mock <KoraliumSqlVisitor>();
            BooleanScalarExpression   booleanScalarExpression = new BooleanScalarExpression();

            booleanScalarExpression.Accept(mock.Object);
            mock.Verify(x => x.VisitBooleanScalarExpression(booleanScalarExpression));
        }
Ejemplo n.º 2
0
        public override void VisitBooleanScalarExpression(BooleanScalarExpression booleanScalarExpression)
        {
            booleanScalarExpression.ScalarExpression.Accept(this);
            var expr = PopStack();

            if (expr.Type != typeof(bool))
            {
                throw new SqlErrorException("WHERE condition must return a boolean.");
            }

            AddExpressionToStack(expr);
        }
Ejemplo n.º 3
0
        public void TestVisitBooleanScalarExpression()
        {
            Mock <ScalarExpression> mock = new Mock <ScalarExpression>();
            BooleanScalarExpression booleanScalarExpression = new BooleanScalarExpression()
            {
                ScalarExpression = mock.Object
            };

            KoraliumSqlVisitor koraliumSqlVisitor = new KoraliumSqlVisitor();

            koraliumSqlVisitor.Visit(booleanScalarExpression);

            mock.Verify(x => x.Accept(koraliumSqlVisitor));
        }
Ejemplo n.º 4
0
        public void TestBooleanScalarExpression()
        {
            var actual = new BooleanScalarExpression()
            {
                ScalarExpression = new ColumnReference()
                {
                    Identifiers = new List <string> {
                        "t"
                    }
                }
            }.Print();
            var expected = "t";

            actual.Should().Be(expected);
        }
Ejemplo n.º 5
0
        public void TestAnyArrayFunction()
        {
            var actual   = QueryBuilder.BooleanExpression <TestClass>(x => x.IntList.Any(y => y == 1));
            var expected = new BooleanScalarExpression()
            {
                ScalarExpression = new FunctionCall()
                {
                    FunctionName = "any_match",
                    Parameters   = new List <SqlExpression>()
                    {
                        new ColumnReference()
                        {
                            Identifiers = new List <string>()
                            {
                                "IntList"
                            }
                        },
                        new LambdaExpression()
                        {
                            Parameters = new List <string>()
                            {
                                "y"
                            },
                            Expression = new BooleanComparisonExpression()
                            {
                                Left = new ColumnReference()
                                {
                                    Identifiers = new List <string>()
                                    {
                                        "y"
                                    }
                                },
                                Right = new IntegerLiteral()
                                {
                                    Value = 1
                                },
                                Type = BooleanComparisonType.Equals
                            }
                        }
                    }
                }
            };

            actual.Should().BeEquivalentTo(expected, x => x.RespectingRuntimeTypes());
        }
Ejemplo n.º 6
0
        public void TestBooleanScalarExpressionEquals()
        {
            BooleanScalarExpression left = new BooleanScalarExpression()
            {
                ScalarExpression = new ColumnReference()
                {
                    Identifiers = new List <string>()
                    {
                        "test"
                    }
                }
            };

            BooleanScalarExpression leftClone = new BooleanScalarExpression()
            {
                ScalarExpression = new ColumnReference()
                {
                    Identifiers = new List <string>()
                    {
                        "test"
                    }
                }
            };

            BooleanScalarExpression right = new BooleanScalarExpression()
            {
                ScalarExpression = new ColumnReference()
                {
                    Identifiers = new List <string>()
                    {
                        "t2"
                    }
                }
            };

            //Equals
            Assert.IsTrue(Equals(left, leftClone));
            Assert.IsFalse(Equals(left, null));
            Assert.IsFalse(Equals(left, right));
            Assert.IsFalse(Equals(left, "other type"));

            //Hash code
            Assert.AreEqual(left.GetHashCode(), leftClone.GetHashCode());
            Assert.AreNotEqual(left.GetHashCode(), right.GetHashCode());
        }
Ejemplo n.º 7
0
        public void TestCloneBooleanScalarExpression()
        {
            BooleanScalarExpression booleanScalarExpression = new BooleanScalarExpression()
            {
                ScalarExpression = new ColumnReference()
                {
                    Identifiers = new List <string>()
                    {
                        "test"
                    }
                }
            };

            var clone = booleanScalarExpression.Clone() as BooleanScalarExpression;

            Assert.IsFalse(ReferenceEquals(booleanScalarExpression, clone));
            Assert.IsFalse(ReferenceEquals(booleanScalarExpression.ScalarExpression, clone.ScalarExpression));
            Assert.AreEqual(booleanScalarExpression, clone);
        }
Ejemplo n.º 8
0
 public virtual void VisitBooleanScalarExpression(BooleanScalarExpression booleanScalarExpression)
 {
     Visit(booleanScalarExpression.ScalarExpression);
     //DONE
 }