public void PerformEagerFetching_WithExceptionInAgent() { var fetchQueries = new EagerFetchQueryCollection { { _orderTicketEndPointDefinition, _fetchQueryStub1 } }; var originatingObjectsData = new[] { _originatingOrderData1, _originatingOrderData2 }; var relatedObjectsData = new[] { _fetchedOrderItemData1, _fetchedOrderItemData2, _fetchedOrderItemData3 }; _fetchResultLoaderMock .Expect(mock => mock.GetOrLoadFetchQueryResult(_fetchQueryStub1, _pendingRegistrationCollector)) .Return(relatedObjectsData); _fetchResultLoaderMock.Replay(); var invalidOperationException = new InvalidOperationException("There was a problem registering stuff."); _registrationAgentMock .Expect(mock => mock.GroupAndRegisterRelatedObjects(_orderTicketEndPointDefinition, originatingObjectsData, relatedObjectsData)) .Throw(invalidOperationException); _registrationAgentMock.Replay(); Assert.That( () => _eagerFetcher.PerformEagerFetching(originatingObjectsData, fetchQueries, _fetchResultLoaderMock, _pendingRegistrationCollector), Throws.Exception.TypeOf <UnexpectedQueryResultException> () .And.With.InnerException.SameAs(invalidOperationException) .And.With.Message.EqualTo("Eager fetching encountered an unexpected query result: There was a problem registering stuff.")); _fetchResultLoaderMock.VerifyAllExpectations(); _registrationAgentMock.VerifyAllExpectations(); }
public void PerformEagerFetching() { var fetchQueries = new EagerFetchQueryCollection { { _orderTicketEndPointDefinition, _fetchQueryStub1 }, { _customerEndPointDefinition, _fetchQueryStub2 } }; var originatingObjectsData = new[] { _originatingOrderData1, _originatingOrderData2 }; var relatedObjectsData1 = new[] { _fetchedOrderItemData1, _fetchedOrderItemData2, _fetchedOrderItemData3 }; var relatedObjectsData2 = new[] { _fetchedCustomerData }; _fetchResultLoaderMock .Expect(mock => mock.GetOrLoadFetchQueryResult(_fetchQueryStub1, _pendingRegistrationCollector)) .Return(relatedObjectsData1); _fetchResultLoaderMock .Expect(mock => mock.GetOrLoadFetchQueryResult(_fetchQueryStub2, _pendingRegistrationCollector)) .Return(relatedObjectsData2); _fetchResultLoaderMock.Replay(); _registrationAgentMock .Expect(mock => mock.GroupAndRegisterRelatedObjects(_orderTicketEndPointDefinition, originatingObjectsData, relatedObjectsData1)); _registrationAgentMock .Expect(mock => mock.GroupAndRegisterRelatedObjects(_customerEndPointDefinition, originatingObjectsData, relatedObjectsData2)); _registrationAgentMock.Replay(); _eagerFetcher.PerformEagerFetching(originatingObjectsData, fetchQueries, _fetchResultLoaderMock, _pendingRegistrationCollector); _fetchResultLoaderMock.VerifyAllExpectations(); _registrationAgentMock.VerifyAllExpectations(); }
public void PerformEagerFetching_NestedEagerFetching_NotHandled() { var fetchQueries = new EagerFetchQueryCollection { { _customerEndPointDefinition, _fetchQueryStub1 } }; _fetchQueryStub1 .Stub(stub => stub.EagerFetchQueries) .Return(new EagerFetchQueryCollection { { _industrialSectorEndPointDefinition, _fetchQueryStub2 } }); var originatingObjectsData = new[] { _originatingOrderData1, _originatingOrderData2 }; var relatedObjectsData = new[] { _fetchedCustomerData }; _fetchResultLoaderMock .Expect(mock => mock.GetOrLoadFetchQueryResult(_fetchQueryStub1, _pendingRegistrationCollector)) .Return(relatedObjectsData); _fetchResultLoaderMock.Replay(); _registrationAgentMock .Expect(mock => mock.GroupAndRegisterRelatedObjects(_customerEndPointDefinition, originatingObjectsData, relatedObjectsData)); _registrationAgentMock.Replay(); _eagerFetcher.PerformEagerFetching(originatingObjectsData, fetchQueries, _fetchResultLoaderMock, _pendingRegistrationCollector); _fetchResultLoaderMock.VerifyAllExpectations(); _registrationAgentMock.VerifyAllExpectations(); }
private void CheckSingleFetchRequest( EagerFetchQueryCollection fetchQueryCollection, Type sourceType, string fetchedProperty, string expectedFetchQueryText) { var relationEndPointDefinition = GetEndPointDefinition(sourceType, fetchedProperty); CheckSingleFetchRequest(fetchQueryCollection, relationEndPointDefinition, expectedFetchQueryText); }
private static void CheckSingleFetchRequest( EagerFetchQueryCollection fetchQueryCollection, IRelationEndPointDefinition relationEndPointDefinition, string expectedFetchQueryText) { Assert.That(fetchQueryCollection.Count, Is.EqualTo(1)); var fetchQuery = fetchQueryCollection.Single(); Assert.That(fetchQuery.Key, Is.EqualTo(relationEndPointDefinition)); Assert.That(fetchQuery.Value.Statement, Is.EqualTo(expectedFetchQueryText)); }
public override void SetUp() { base.SetUp(); _query1 = QueryFactory.CreateQuery(TestQueryFactory.CreateOrderSumQueryDefinition()); _query2 = QueryFactory.CreateQuery(TestQueryFactory.CreateOrderQueryWithCustomCollectionType()); _endPointDefinition1 = DomainObjectIDs.Order1.ClassDefinition.GetMandatoryRelationEndPointDefinition(typeof(Order).FullName + ".OrderItems"); _endPointDefinition2 = DomainObjectIDs.Customer1.ClassDefinition.GetMandatoryRelationEndPointDefinition(typeof(Customer).FullName + ".Orders"); _objectEndPointDefinition = DomainObjectIDs.Order1.ClassDefinition.GetMandatoryRelationEndPointDefinition(typeof(Order).FullName + ".OrderTicket"); _collection = new EagerFetchQueryCollection(); }
public void PerformEagerFetching_NoOriginatingObjects() { var fetchQueries = new EagerFetchQueryCollection { { _orderTicketEndPointDefinition, _fetchQueryStub1 } }; var originatingObjectsData = new ILoadedObjectData[0]; _fetchResultLoaderMock.Replay(); _registrationAgentMock.Replay(); _eagerFetcher.PerformEagerFetching(originatingObjectsData, fetchQueries, _fetchResultLoaderMock, _pendingRegistrationCollector); _fetchResultLoaderMock.AssertWasNotCalled(mock => mock.GetOrLoadFetchQueryResult(_fetchQueryStub1, _pendingRegistrationCollector)); _fetchResultLoaderMock.VerifyAllExpectations(); _registrationAgentMock.VerifyAllExpectations(); }
public void DelegatedMembers() { var testHelper = new DecoratorTestHelper <IQuery> (_queryAdapterBase, _queryMock); var parameterCollection = new QueryParameterCollection { { "p1", 7 } }; var eagerFetchQueries = new EagerFetchQueryCollection { { GetEndPointDefinition(typeof(Order), "OrderTicket"), MockRepository.GenerateStub <IQuery>() } }; testHelper.CheckDelegation(q => q.ID, "Some ID"); testHelper.CheckDelegation(q => q.Statement, "Some Statement"); testHelper.CheckDelegation(q => q.StorageProviderDefinition, TestDomainStorageProviderDefinition); testHelper.CheckDelegation(q => q.CollectionType, typeof(OrderCollection)); testHelper.CheckDelegation(q => q.QueryType, QueryType.Collection); testHelper.CheckDelegation(q => q.Parameters, parameterCollection); testHelper.CheckDelegation(q => q.EagerFetchQueries, eagerFetchQueries); }