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(); }
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(); }
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); }
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)); }