public void ApplyContext_VisitUnresolvedCollectionJoinInfo()
        {
            var unresolvedJoinInfo = new UnresolvedCollectionJoinInfo(Expression.Constant(new Cook()), typeof(Cook).GetProperty("IllnessDays"));

            var result = SqlContextJoinInfoVisitor.ApplyContext(unresolvedJoinInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingResolutionContext);

            Assert.That(result, Is.SameAs(unresolvedJoinInfo));
        }
        public void ApplyContext_VisitUnresolvedJoinInfo()
        {
            var entityExpression   = SqlStatementModelObjectMother.CreateSqlEntityDefinitionExpression(typeof(Cook));
            var unresolvedJoinInfo = new UnresolvedJoinInfo(entityExpression, typeof(Cook).GetProperty("ID"), JoinCardinality.One);

            var result = SqlContextJoinInfoVisitor.ApplyContext(unresolvedJoinInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingResolutionContext);

            Assert.That(result, Is.SameAs(unresolvedJoinInfo));
        }
        public void ApplyContext_VisitResolvedJoinInfo_SameForeignTableInfo()
        {
            var resolvedJoinInfo = SqlStatementModelObjectMother.CreateResolvedJoinInfo();

            _stageMock
            .Expect(mock => mock.ApplyContext(resolvedJoinInfo.ForeignTableInfo, SqlExpressionContext.ValueRequired, _mappingResolutionContext))
            .Return(resolvedJoinInfo.ForeignTableInfo);
            _stageMock.Replay();

            var result = SqlContextJoinInfoVisitor.ApplyContext(resolvedJoinInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingResolutionContext);

            _stageMock.VerifyAllExpectations();
            Assert.That(result, Is.SameAs(resolvedJoinInfo));
        }
        public void ApplyContext_VisitResolvedJoinInfo_NewForeignTableInfo()
        {
            var resolvedJoinInfo = SqlStatementModelObjectMother.CreateResolvedJoinInfo();
            var fakeTableInfo    = new ResolvedSimpleTableInfo(typeof(Restaurant), "RestaurantTable", "r");

            _stageMock
            .Expect(mock => mock.ApplyContext(resolvedJoinInfo.ForeignTableInfo, SqlExpressionContext.ValueRequired, _mappingResolutionContext))
            .Return(fakeTableInfo);
            _stageMock.Replay();

            var result = SqlContextJoinInfoVisitor.ApplyContext(resolvedJoinInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingResolutionContext);

            _stageMock.VerifyAllExpectations();
            Assert.That(((ResolvedJoinInfo)result).ForeignTableInfo, Is.SameAs(fakeTableInfo));
            Assert.That(((ResolvedJoinInfo)result).JoinCondition, Is.SameAs(resolvedJoinInfo.JoinCondition));
        }