예제 #1
0
        private Expression <Action> GetActionForConstant(ConstantExpression constantExpression, Expression resultExpression, ExpressionType expressionType, string lambdaString)
        {
            if (constantExpression.Value == null)
            {
                if (expressionType == ExpressionType.Equal)
                {
                    return(AssertBuilder.GetIsNullAction(resultExpression, lambdaString));
                }
                else
                {
                    return(AssertBuilder.GetIsNotNullAction(resultExpression, lambdaString));
                }
            }

            var value = (bool)constantExpression.Value;

            if (expressionType == ExpressionType.NotEqual)
            {
                value = !value;
            }

            return(value
                       ? AssertBuilder.GetIsTrueAction(resultExpression, lambdaString)
                       : AssertBuilder.GetIsFalseAction(resultExpression, lambdaString));
        }
예제 #2
0
        protected override Expression <Action> GetActionInternal(UnaryExpression typedExpression, string lambda)
        {
            var operand = typedExpression.Operand;

            return(AssertBuilder.GetIsFalseAction(operand, lambda));
        }