Example #1
0
        public void StringCompare_GreaterThanNeg1_ReturnsGreaterThanOrEqual()
        {
            // Arrange

            var string1 = Expression.Constant("A");
            var string2 = Expression.Constant("B");

            BinaryExpression expression = Expression.GreaterThan(
                Expression.Call(
                    typeof(string).GetMethod("Compare", new[] { typeof(string), typeof(string) }),
                    string1,
                    string2
                    ),
                Expression.Constant(-1));

            var transformer = new StringComparisonExpressionTransformer();

            // Act

            var newExpression = transformer.Transform(expression) as StringComparisonExpression;

            // Assert

            Assert.NotNull(newExpression);
            Assert.AreEqual(ExpressionType.GreaterThanOrEqual, newExpression.Operation);
            Assert.AreEqual(string1, newExpression.Left);
            Assert.AreEqual(string2, newExpression.Right);
        }
        public void StringCompare_EqualToNeg1_ReturnsLessThan()
        {
            // Arrange

            var string1 = Expression.Constant("A");
            var string2 = Expression.Constant("B");

            BinaryExpression expression = Expression.Equal(
                Expression.Call(
                    typeof(string).GetMethod("Compare", new[] { typeof(string), typeof(string) }),
                    string1,
                    string2
                ),
                Expression.Constant(-1));

            var transformer = new StringComparisonExpressionTransformer();

            // Act

            var newExpression = transformer.Transform(expression) as StringComparisonExpression;

            // Assert

            Assert.NotNull(newExpression);
            Assert.AreEqual(ExpressionType.LessThan, newExpression.Operation);
            Assert.AreEqual(string1, newExpression.Left);
            Assert.AreEqual(string2, newExpression.Right);
        }