public void FilterCustomQueryResult()
        {
            _compoundListener.AddListener(_listener1);
            _compoundListener.AddListener(_listener2);

            var queryStub = MockRepository.GenerateStub <IQuery> ();

            var listenerMock1 = MockRepository.GenerateMock <IClientTransactionListener> ();
            var listenerMock2 = MockRepository.GenerateMock <IClientTransactionListener> ();

            var compoundListener = new CompoundClientTransactionListener();

            compoundListener.AddListener(listenerMock1);
            compoundListener.AddListener(listenerMock2);

            var originalResult = new object[0];
            var newResult1     = new[] { new object() };
            var newResult2     = new[] { new object() };

            listenerMock1.Expect(mock => mock.FilterCustomQueryResult(TestableClientTransaction, queryStub, originalResult)).Return(newResult1);
            listenerMock2.Expect(mock => mock.FilterCustomQueryResult(TestableClientTransaction, queryStub, newResult1)).Return(newResult2);

            var finalResult = compoundListener.FilterCustomQueryResult(TestableClientTransaction, queryStub, originalResult);

            Assert.That(finalResult, Is.SameAs(newResult2));
        }
        public void FilterQueryResult()
        {
            _compoundListener.AddListener(_listener1);
            _compoundListener.AddListener(_listener2);

            var listenerMock1 = MockRepository.GenerateMock <IClientTransactionListener> ();
            var listenerMock2 = MockRepository.GenerateMock <IClientTransactionListener> ();

            var compoundListener = new CompoundClientTransactionListener();

            compoundListener.AddListener(listenerMock1);
            compoundListener.AddListener(listenerMock2);

            var queryStub      = MockRepository.GenerateStub <IQuery>();
            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.Order3.GetObject <Order> () });

            listenerMock1.Expect(mock => mock.FilterQueryResult(TestableClientTransaction, originalResult)).Return(newResult1);
            listenerMock2.Expect(mock => mock.FilterQueryResult(TestableClientTransaction, newResult1)).Return(newResult2);

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

            Assert.That(finalResult, Is.SameAs(newResult2));
        }
        public override void SetUp()
        {
            base.SetUp();

            _mockRepository = new MockRepository();

            _listener1 = _mockRepository.StrictMock <IClientTransactionListener> ();
            _listener2 = _mockRepository.StrictMock <IClientTransactionListener> ();

            _compoundListener = new CompoundClientTransactionListener();
        }