public void AccessObjectInFilterQueryResult() { using (TestableClientTransaction.CreateSubTransaction().EnterDiscardingScope()) { var extensionMock = MockRepository.GenerateMock <IClientTransactionExtension> (); DomainObjectIDs.Order1.GetObject <Order> (); extensionMock.Stub(stub => stub.Key).Return("stub"); extensionMock.Replay(); TestableClientTransaction.Extensions.Add(extensionMock); try { extensionMock.BackToRecord(); var query = QueryFactory.CreateQueryFromConfiguration("OrderQuery"); query.Parameters.Add("@customerID", DomainObjectIDs.Customer3); var newQueryResult = TestQueryFactory.CreateTestQueryResult <DomainObject> (); extensionMock .Expect(mock => mock.FilterQueryResult(Arg <ClientTransaction> .Is.Anything, Arg <QueryResult <DomainObject> > .Is.Anything)) .WhenCalled(mi => DomainObjectIDs.Order1.GetObject <Order> ()) .Return(newQueryResult); extensionMock.Replay(); ClientTransaction.Current.QueryManager.GetCollection(query); extensionMock.VerifyAllExpectations(); } finally { TestableClientTransaction.Extensions.Remove("stub"); } } }
public void CollectionQuery_CallsFilterQueryResult_AndAllowsGetObjectDuringFiltering() { var listenerMock = MockRepository.GenerateMock <IClientTransactionListener> (); listenerMock .Expect(mock => mock.FilterQueryResult(Arg.Is(TestableClientTransaction), Arg <QueryResult <DomainObject> > .Is.Anything)) .Return(TestQueryFactory.CreateTestQueryResult <DomainObject> ()) .WhenCalled(mi => DomainObjectIDs.OrderItem1.GetObject <OrderItem>()); TestableClientTransaction.AddListener(listenerMock); var query = QueryFactory.CreateQueryFromConfiguration("OrderQuery"); query.Parameters.Add("customerID", DomainObjectIDs.Customer1); TestableClientTransaction.QueryManager.GetCollection(query); listenerMock.VerifyAllExpectations(); listenerMock.BackToRecord(); // For Discarding }
public void LinqQuery_CallsFilterQueryResult() { var extensionKey = "LinqQuery_CallsFilterQueryResult_Key"; var extensionMock = MockRepository.GenerateMock <IClientTransactionExtension>(); extensionMock.Stub(stub => stub.Key).Return(extensionKey); extensionMock .Expect(mock => mock.FilterQueryResult(Arg.Is(TestableClientTransaction), Arg <QueryResult <DomainObject> > .Is.Anything)) .Return(TestQueryFactory.CreateTestQueryResult <DomainObject>()); TestableClientTransaction.Extensions.Add(extensionMock); try { var query = from o in QueryFactory.CreateLinqQuery <Order>() where o.Customer.ID == DomainObjectIDs.Customer1 select o; query.ToArray(); extensionMock.VerifyAllExpectations(); } finally { TestableClientTransaction.Extensions.Remove(extensionKey); } }