Example #1
0
        public void TestCloneBooleanBinaryExpression()
        {
            BooleanBinaryExpression booleanBinaryExpression = new BooleanBinaryExpression()
            {
                Type = BooleanBinaryType.AND,
                Left = new BooleanComparisonExpression()
                {
                    Type = BooleanComparisonType.Equals,
                    Left = new ColumnReference()
                    {
                        Identifiers = new List <string>()
                        {
                            "c1"
                        }
                    },
                    Right = new IntegerLiteral()
                    {
                        Value = 3
                    }
                },
                Right = new BooleanComparisonExpression()
                {
                    Type = BooleanComparisonType.GreaterThan,
                    Left = new ColumnReference()
                    {
                        Identifiers = new List <string>()
                        {
                            "c2"
                        }
                    },
                    Right = new IntegerLiteral()
                    {
                        Value = 17
                    }
                }
            };

            var clone = booleanBinaryExpression.Clone() as BooleanBinaryExpression;

            Assert.AreEqual(booleanBinaryExpression, clone);
            Assert.IsFalse(ReferenceEquals(booleanBinaryExpression, clone));
            Assert.IsFalse(ReferenceEquals(booleanBinaryExpression.Left, clone.Left));
            Assert.IsFalse(ReferenceEquals(booleanBinaryExpression.Right, clone.Right));
        }