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");
                }
            }
        }
Esempio n. 2
0
        public void InitializeWithQueryDefinition()
        {
            var parameters = new QueryParameterCollection();

            QueryDefinition definition = TestQueryFactory.CreateOrderQueryWithCustomCollectionType();
            var             query      = new Query(definition, parameters);

            Assert.That(query.Definition, Is.SameAs(definition));
            Assert.That(query.ID, Is.EqualTo(definition.ID));
            Assert.That(query.Parameters, Is.SameAs(parameters));
        }
        private QueryDefinitionCollection CreateExpectedQueryDefinitions()
        {
            QueryDefinitionCollection queries = new QueryDefinitionCollection();

            queries.Add(TestQueryFactory.CreateOrderQueryWithCustomCollectionType());
            queries.Add(TestQueryFactory.CreateOrderQueryDefinitionWithObjectListOfOrder());
            queries.Add(TestQueryFactory.CreateCustomerTypeQueryDefinition());
            queries.Add(TestQueryFactory.CreateOrderSumQueryDefinition());

            return(queries);
        }
Esempio n. 4
0
        public void EagerFetchQueries()
        {
            QueryDefinition definition = TestQueryFactory.CreateOrderQueryWithCustomCollectionType();
            var             query1     = new Query(definition, new QueryParameterCollection());

            Assert.That(query1.EagerFetchQueries, Is.Not.Null);
            Assert.That(query1.EagerFetchQueries.Count, Is.EqualTo(0));

            var query2             = new Query(definition, new QueryParameterCollection());
            var endPointDefinition = DomainObjectIDs.Order1.ClassDefinition.GetMandatoryRelationEndPointDefinition(typeof(Order).FullName + ".OrderItems");

            query1.EagerFetchQueries.Add(endPointDefinition, query2);
            Assert.That(query1.EagerFetchQueries.Count, Is.EqualTo(1));
        }
        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 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 FilterQueryResult()
        {
            var queryStub = QueryFactory.CreateQuery(TestQueryFactory.CreateOrderQueryWithCustomCollectionType());

            var originalResult = new QueryResult <Order> (queryStub, new Order[0]);
            var newResult1     = new QueryResult <Order> (queryStub, new[] { DomainObjectIDs.Order1.GetObject <Order> () });
            var newResult2     = new QueryResult <Order> (queryStub, new[] { DomainObjectIDs.Order2.GetObject <Order> () });

            _extension1.Expect(mock => mock.FilterQueryResult(TestableClientTransaction, originalResult)).Return(newResult1);
            _extension2.Expect(mock => mock.FilterQueryResult(TestableClientTransaction, newResult1)).Return(newResult2);

            var finalResult = _collectionWithExtensions.FilterQueryResult(TestableClientTransaction, originalResult);

            Assert.That(finalResult, Is.SameAs(newResult2));

            _extension1.VerifyAllExpectations();
            _extension2.VerifyAllExpectations();
        }
Esempio n. 8
0
        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);
            }
        }