コード例 #1
0
ファイル: IterationTests.cs プロジェクト: blinds52/Fold
        public void Iteration_of_string_length_lambda_yields_the_correct_expressions()
        {
            Expression <Func <string, int> > expression = x => x.Length;

            var expected = new ExpressionIterationNodeAssertionList()
                           .Add <LambdaExpression>()
                           .Add <ParameterExpression>(e => e.Name == "x")
                           .Add <MemberExpression>(e => e.Member.Name == "Length")
                           .Add <ParameterExpression>(e => e.Name == "x")
            ;

            var actual = expression.Iterate().ToList();

            Assert.Equal(expected.Count, actual.Count);
            for (int i = 0; i < expected.Count; ++i)
            {
                Assert.True(expected[i](actual[i]));
            }
        }
コード例 #2
0
ファイル: IterationTests.cs プロジェクト: blinds52/Fold
        public void Iteration_of_string_method_calls_yields_the_correct_expressions()
        {
            Expression <Func <string, bool> > expression = x => x.Contains("abc") || x.GetEnumerator().MoveNext();

            var expected = new ExpressionIterationNodeAssertionList()
                           .Add <LambdaExpression>()
                           .Add <ParameterExpression>(e => e.Name == "x")
                           .Add <BinaryExpression>(e => e.NodeType == ExpressionType.OrElse)
                           .Add <MethodCallExpression>(e => e.Method.Name == "Contains")
                           .Add <ParameterExpression>(e => e.Name == "x")
                           .Add <ConstantExpression>(e => e.Value.Equals("abc"))
                           .Add <MethodCallExpression>(e => e.Method.Name == "MoveNext")
                           .Add <MethodCallExpression>(e => e.Method.Name == "GetEnumerator")
                           .Add <ParameterExpression>(e => e.Name == "x")
            ;

            var actual = expression.Iterate().ToList();

            Assert.Equal(expected.Count, actual.Count);
            for (int i = 0; i < expected.Count; ++i)
            {
                Assert.True(expected[i](actual[i]));
            }
        }