예제 #1
0
        public void CreateNewExpressionWithNamedArguments_ArgumentsAlreadyNamedCorrectly()
        {
            var innerExpression = new NamedExpression("m0", Expression.Constant(0));
            var expression      = Expression.New(TypeForNewExpression.GetConstructor(typeof(int)), new[] { innerExpression });

            var result = NamedExpression.CreateNewExpressionWithNamedArguments(expression);

            Assert.That(result, Is.SameAs(expression));
        }
예제 #2
0
        public void GenerateSql_VistNewExpression()
        {
            var expression = Expression.New(
                TypeForNewExpression.GetConstructor(typeof(int)),
                new[] { Expression.Constant(0) },
                (MemberInfo)typeof(TypeForNewExpression).GetProperty("A"));

            SqlGeneratingExpressionVisitor.GenerateSql(expression, _commandBuilder, _stageMock);

            Assert.That(_commandBuilder.GetCommandText(), Is.EqualTo("@1"));
            Assert.That(_commandBuilder.GetCommandParameters()[0].Value, Is.EqualTo(0));
        }
예제 #3
0
        public void CreateNewExpressionWithNamedArguments_WithPropertyCalledGet()
        {
            var innerExpression = Expression.Constant(0);
            var memberInfo      = (MemberInfo)typeof(TypeForNewExpression).GetProperty("get_");
            var expression      = Expression.New(
                TypeForNewExpression.GetConstructor(typeof(int)),
                new[] { innerExpression },
                memberInfo);

            var result = NamedExpression.CreateNewExpressionWithNamedArguments(expression);

            var expectedResult = Expression.New(
                TypeForNewExpression.GetConstructor(typeof(int)), new[] { new NamedExpression("get_", innerExpression) }, memberInfo);

            SqlExpressionTreeComparer.CheckAreEqualTrees(expectedResult, result);
        }
예제 #4
0
 public void SetUp()
 {
     _context = new MappingResolutionContext();
     _typeForNewExpressionConstructor = TypeForNewExpression.GetConstructor(typeof(int));
     _namedExpressionCombiner         = new NamedExpressionCombiner(_context);
 }