Unary() public static method

public static Unary ( SqlExpressionType expressionType, SqlExpression operand ) : SqlUnaryExpression
expressionType SqlExpressionType
operand SqlExpression
return SqlUnaryExpression
コード例 #1
0
            public override SqlUnaryExpression Deserialize(BinaryReader reader)
            {
                var expType = (SqlExpressionType)reader.ReadByte();
                var exp     = ReadExpression(reader);

                return(SqlExpression.Unary(expType, exp));
            }
コード例 #2
0
        public static void CreateUnary(SqlExpressionType expressionType, object value)
        {
            var obj     = SqlObject.New(SqlValueUtil.FromObject(value));
            var operand = SqlExpression.Constant(obj);
            var exp     = SqlExpression.Unary(expressionType, operand);

            Assert.NotNull(exp.Operand);
            Assert.IsType <SqlConstantExpression>(exp.Operand);
        }
コード例 #3
0
        public static void GetUnaryType(SqlExpressionType expressionType, object value)
        {
            var obj     = SqlObject.New(SqlValueUtil.FromObject(value));
            var operand = SqlExpression.Constant(obj);
            var exp     = SqlExpression.Unary(expressionType, operand);

            var sqlType = exp.Type;

            Assert.Equal(obj.Type, sqlType);
        }
コード例 #4
0
        public static void GetUnaryString(SqlExpressionType expressionType, object value, string expected)
        {
            var obj     = SqlObject.New(SqlValueUtil.FromObject(value));
            var operand = SqlExpression.Constant(obj);
            var exp     = SqlExpression.Unary(expressionType, operand);

            var s = exp.ToString();

            Assert.Equal(expected, s);
        }
コード例 #5
0
        public static void SerializeUnary(SqlExpressionType expressionType, object value)
        {
            var obj     = SqlObject.New(SqlValueUtil.FromObject(value));
            var operand = SqlExpression.Constant(obj);
            var exp     = SqlExpression.Unary(expressionType, operand);

            var result = BinarySerializeUtil.Serialize(exp);

            Assert.Equal(exp.ExpressionType, result.ExpressionType);
        }
コード例 #6
0
        public virtual SqlExpression VisitUnary(SqlUnaryExpression expression)
        {
            var operand = expression.Operand;

            if (operand != null)
            {
                operand = Visit(operand);
            }

            return(SqlExpression.Unary(expression.ExpressionType, operand));
        }
コード例 #7
0
        public static async Task ReduceUnary(SqlExpressionType expressionType, object value, object expected)
        {
            var obj     = SqlObject.New(SqlValueUtil.FromObject(value));
            var operand = SqlExpression.Constant(obj);
            var exp     = SqlExpression.Unary(expressionType, operand);

            Assert.NotNull(exp.Operand);
            Assert.IsType <SqlConstantExpression>(exp.Operand);

            Assert.True(exp.CanReduce);

            var reduced = await exp.ReduceAsync(null);

            Assert.NotNull(reduced);
            Assert.IsType <SqlConstantExpression>(reduced);

            var expectedResult = SqlObject.New(SqlValueUtil.FromObject(expected));

            Assert.Equal(expectedResult, ((SqlConstantExpression)reduced).Value);
        }
コード例 #8
0
        public static void VisitUnary()
        {
            var exp = SqlExpression.Unary(SqlExpressionType.UnaryPlus, SqlExpression.Constant(SqlObject.Integer(33)));

            Visit(exp);
        }