示例#1
0
        public void ResolveJoinInfo_ResolvesUnresolvedJoinInfo_AndResolvesJoinedTable()
        {
            var foreignTableInfo = new ResolvedSimpleTableInfo(typeof(string), "Cook", "c");
            var condition        = ExpressionHelper.CreateExpression(typeof(bool));

            var resolvedJoinInfo = new ResolvedJoinInfo(foreignTableInfo, condition);

            _resolverMock
            .Expect(mock => mock.ResolveJoinInfo(_unresolvedJoinInfo, _generator))
            .Return(resolvedJoinInfo);

            var fakeResolvedForeignTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo(typeof(string));

            _stageMock
            .Expect(mock => mock.ResolveTableInfo(foreignTableInfo, _mappingResolutionContext))
            .Return(fakeResolvedForeignTableInfo);
            _stageMock
            .Expect(mock => mock.ResolveJoinCondition(condition, _mappingResolutionContext))
            .Return(condition);

            var result = ResolvingJoinInfoVisitor.ResolveJoinInfo(_unresolvedJoinInfo, _resolverMock, _generator, _stageMock, _mappingResolutionContext);

            Assert.That(result, Is.Not.SameAs(resolvedJoinInfo));
            Assert.That(result.ForeignTableInfo, Is.SameAs(fakeResolvedForeignTableInfo));
            Assert.That(result.JoinCondition, Is.SameAs(condition));
            _resolverMock.VerifyAllExpectations();
            _stageMock.VerifyAllExpectations();
        }
示例#2
0
        public void ResolveJoinInfo_ResolvesCollectionJoinInfo()
        {
            var memberInfo = typeof(Cook).GetProperty("IllnessDays");
            var unresolvedCollectionJoinInfo = new UnresolvedCollectionJoinInfo(Expression.Constant(new Cook()), memberInfo);

            var sqlEntityExpression = SqlStatementModelObjectMother.CreateSqlEntityDefinitionExpression(typeof(Cook));

            var fakeResolvedJoinInfo = SqlStatementModelObjectMother.CreateResolvedJoinInfo();

            _stageMock
            .Expect(mock => mock.ResolveCollectionSourceExpression(unresolvedCollectionJoinInfo.SourceExpression, _mappingResolutionContext))
            .Return(sqlEntityExpression);

            _resolverMock
            .Expect(
                mock =>
                mock.ResolveJoinInfo(
                    Arg <UnresolvedJoinInfo> .Matches(a => a.MemberInfo == memberInfo && a.OriginatingEntity.Type == typeof(Cook)),
                    Arg.Is(_generator)))
            .Return(fakeResolvedJoinInfo);

            _stageMock
            .Expect(mock => mock.ResolveTableInfo(fakeResolvedJoinInfo.ForeignTableInfo, _mappingResolutionContext))
            .Return(fakeResolvedJoinInfo.ForeignTableInfo);
            _stageMock
            .Expect(mock => mock.ResolveJoinCondition(fakeResolvedJoinInfo.JoinCondition, _mappingResolutionContext))
            .Return(fakeResolvedJoinInfo.JoinCondition);

            var resolvedJoinInfo = ResolvingJoinInfoVisitor.ResolveJoinInfo(unresolvedCollectionJoinInfo, _resolverMock, _generator, _stageMock, _mappingResolutionContext);

            Assert.That(resolvedJoinInfo, Is.SameAs(fakeResolvedJoinInfo));

            _stageMock.VerifyAllExpectations();
            _resolverMock.VerifyAllExpectations();
        }
示例#3
0
        public void ResolveJoinInfo_ResolvesCollectionJoinInfo_NoEntity()
        {
            var memberInfo = typeof(Cook).GetProperty("IllnessDays");
            var unresolvedCollectionJoinInfo = new UnresolvedCollectionJoinInfo(Expression.Constant(new Cook()), memberInfo);
            var fakeExpression = Expression.Constant(1);

            _stageMock
            .Expect(mock => mock.ResolveCollectionSourceExpression(unresolvedCollectionJoinInfo.SourceExpression, _mappingResolutionContext))
            .Return(fakeExpression);

            ResolvingJoinInfoVisitor.ResolveJoinInfo(unresolvedCollectionJoinInfo, _resolverMock, _generator, _stageMock, _mappingResolutionContext);
        }
示例#4
0
        public void ResolveJoinInfo_WithResolvedJoinInfo_ReresolvesTableInfo_AndKeys()
        {
            var resolvedJoinInfo = SqlStatementModelObjectMother.CreateResolvedJoinInfo();

            var fakeResolvedTableInfo = SqlStatementModelObjectMother.CreateResolvedTableInfo();

            _stageMock
            .Expect(mock => mock.ResolveTableInfo(resolvedJoinInfo.ForeignTableInfo, _mappingResolutionContext))
            .Return(fakeResolvedTableInfo);
            var fakeResolvedJoinCondition = ExpressionHelper.CreateExpression(typeof(bool));

            _stageMock
            .Expect(mock => mock.ResolveJoinCondition(resolvedJoinInfo.JoinCondition, _mappingResolutionContext))
            .Return(fakeResolvedJoinCondition);

            var result = ResolvingJoinInfoVisitor.ResolveJoinInfo(resolvedJoinInfo, _resolverMock, _generator, _stageMock, _mappingResolutionContext);

            _stageMock.VerifyAllExpectations();
            Assert.That(result.ForeignTableInfo, Is.SameAs(fakeResolvedTableInfo));
            Assert.That(result.JoinCondition, Is.SameAs(fakeResolvedJoinCondition));
        }