public override void SetUp() { base.SetUp(); _registrationAgentMock = MockRepository.GenerateStrictMock <IFetchedRelationDataRegistrationAgent>(); _fetchResultLoaderMock = MockRepository.GenerateStrictMock <IFetchEnabledObjectLoader>(); _eagerFetcher = new EagerFetcher(_registrationAgentMock); _fetchQueryStub1 = MockRepository.GenerateStub <IQuery> (); _fetchQueryStub2 = MockRepository.GenerateStub <IQuery> (); _orderTicketEndPointDefinition = GetEndPointDefinition(typeof(Order), "OrderTicket"); _customerEndPointDefinition = GetEndPointDefinition(typeof(Order), "Customer"); _industrialSectorEndPointDefinition = GetEndPointDefinition(typeof(Company), "IndustrialSector"); _originatingOrder1 = DomainObjectMother.CreateFakeObject <Order>(); _originatingOrder2 = DomainObjectMother.CreateFakeObject <Order>(); _originatingOrderData1 = LoadedObjectDataObjectMother.CreateLoadedObjectDataStub(_originatingOrder1); _originatingOrderData2 = LoadedObjectDataObjectMother.CreateLoadedObjectDataStub(_originatingOrder2); _fetchedOrderItem1 = DomainObjectMother.CreateFakeObject <OrderItem>(); _fetchedOrderItem2 = DomainObjectMother.CreateFakeObject <OrderItem>(); _fetchedOrderItem3 = DomainObjectMother.CreateFakeObject <OrderItem>(); _fetchedOrderItemData1 = LoadedObjectDataObjectMother.CreateLoadedObjectDataWithDataSourceData(_fetchedOrderItem1); _fetchedOrderItemData2 = LoadedObjectDataObjectMother.CreateLoadedObjectDataWithDataSourceData(_fetchedOrderItem2); _fetchedOrderItemData3 = LoadedObjectDataObjectMother.CreateLoadedObjectDataWithDataSourceData(_fetchedOrderItem3); _fetchedCustomer = DomainObjectMother.CreateFakeObject <Customer>(); _fetchedCustomerData = LoadedObjectDataObjectMother.CreateLoadedObjectDataWithDataSourceData(_fetchedCustomer); _pendingRegistrationCollector = new LoadedObjectDataPendingRegistrationCollector(); }
public void PerformEagerFetching( ICollection <ILoadedObjectData> originatingObjects, IEnumerable <KeyValuePair <IRelationEndPointDefinition, IQuery> > fetchQueries, IFetchEnabledObjectLoader fetchResultLoader, LoadedObjectDataPendingRegistrationCollector pendingRegistrationCollector) { ArgumentUtility.CheckNotNull("originatingObjects", originatingObjects); ArgumentUtility.CheckNotNull("fetchQueries", fetchQueries); ArgumentUtility.CheckNotNull("fetchResultLoader", fetchResultLoader); ArgumentUtility.CheckNotNull("pendingRegistrationCollector", pendingRegistrationCollector); if (originatingObjects.Count <= 0) { return; } foreach (var item in fetchQueries) { var relationEndPointDefinition = item.Key; var fetchQuery = item.Value; s_log.DebugFormat( "Eager fetching objects for {0} via query {1} ('{2}').", relationEndPointDefinition.PropertyName, fetchQuery.ID, fetchQuery.Statement); var fetchedObjects = fetchResultLoader.GetOrLoadFetchQueryResult(fetchQuery, pendingRegistrationCollector); s_log.DebugFormat( "The eager fetch query for {0} yielded {1} related objects for {2} original objects.", relationEndPointDefinition.PropertyName, fetchedObjects.Count, originatingObjects.Count); try { _registrationAgent.GroupAndRegisterRelatedObjects(relationEndPointDefinition, originatingObjects, fetchedObjects); } catch (InvalidOperationException ex) { throw new UnexpectedQueryResultException("Eager fetching encountered an unexpected query result: " + ex.Message, ex); } } }
public void PerformEagerFetching(ICollection <ILoadedObjectData> originatingObjects, IEnumerable <KeyValuePair <IRelationEndPointDefinition, IQuery> > fetchQueries, IFetchEnabledObjectLoader fetchResultLoader, LoadedObjectDataPendingRegistrationCollector pendingRegistrationCollector) { throw new NotImplementedException(); }