public void ApplyContext_UnresolvedTableInfo()
        {
            var tableInfo = new UnresolvedTableInfo(typeof(Cook));

            var result = SqlContextTableInfoVisitor.ApplyContext(tableInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);

            Assert.That(result, Is.SameAs(tableInfo));
        }
        public void ApplyContext_ResolvedSubStatementTableInfo_SameTableInfo()
        {
            var subStatement          = SqlStatementModelObjectMother.CreateSqlStatement_Resolved(typeof(Cook));
            var subStatementTableInfo = new ResolvedSubStatementTableInfo("c", subStatement);

            _stageMock
            .Expect(mock => mock.ApplySelectionContext(subStatement, SqlExpressionContext.ValueRequired, _mappingresolutionContext))
            .Return(subStatement);
            _stageMock.Replay();

            var result = SqlContextTableInfoVisitor.ApplyContext(subStatementTableInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);

            Assert.That(result, Is.SameAs(subStatementTableInfo));
            _stageMock.VerifyAllExpectations();
        }
        public void ApplyContext_SqlJoinedTable_SameJoinInfo()
        {
            var joinInfo       = SqlStatementModelObjectMother.CreateResolvedJoinInfo();
            var sqlJoinedTable = new SqlJoinedTable(joinInfo, JoinSemantics.Left);

            _stageMock
            .Expect(mock => mock.ApplyContext(joinInfo, SqlExpressionContext.ValueRequired, _mappingresolutionContext))
            .Return(joinInfo);
            _stageMock.Replay();

            var result = SqlContextTableInfoVisitor.ApplyContext(sqlJoinedTable, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);

            _stageMock.VerifyAllExpectations();
            Assert.That(result, Is.SameAs(sqlJoinedTable));
        }
        public void ApplyContext_ResolvedJoinedGroupingTableInfo_NewTableInfo()
        {
            var subStatement = SqlStatementModelObjectMother.CreateSqlStatement_Resolved(typeof(Cook));

            var joinedGroupingTableInfo = SqlStatementModelObjectMother.CreateResolvedJoinedGroupingTableInfo(subStatement);
            var returnedStatement       = SqlStatementModelObjectMother.CreateSqlStatement_Resolved(typeof(Cook));

            _stageMock
            .Expect(mock => mock.ApplySelectionContext(subStatement, SqlExpressionContext.ValueRequired, _mappingresolutionContext))
            .Return(returnedStatement);
            _stageMock.Replay();

            var result = (ResolvedJoinedGroupingTableInfo)SqlContextTableInfoVisitor.ApplyContext(joinedGroupingTableInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);

            _stageMock.VerifyAllExpectations();
            Assert.That(result, Is.Not.SameAs(joinedGroupingTableInfo));
            Assert.That(result.GroupSourceTableAlias, Is.EqualTo(joinedGroupingTableInfo.GroupSourceTableAlias));
            Assert.That(result.AssociatedGroupingSelectExpression, Is.SameAs(joinedGroupingTableInfo.AssociatedGroupingSelectExpression));
            Assert.That(result.SqlStatement, Is.SameAs(returnedStatement));
            Assert.That(result.TableAlias, Is.EqualTo(joinedGroupingTableInfo.TableAlias));
        }
        public void ApplyContext_UnresolvedGroupReferenceTableInfo()
        {
            var tableInfo = SqlStatementModelObjectMother.CreateUnresolvedGroupReferenceTableInfo();

            SqlContextTableInfoVisitor.ApplyContext(tableInfo, SqlExpressionContext.ValueRequired, _stageMock, _mappingresolutionContext);
        }