public void CopyCollectionEventHandlers_DoesNotLoadRelatedObjectContentsInDestinationTransaction()
        {
            var mockRepository = new MockRepository();
            var listenerMock   = mockRepository.StrictMock <IClientTransactionListener> ();

            var innerTransaction = new TestableClientTransaction();

            listenerMock.Stub(stub => stub.TransactionDiscard(innerTransaction));

            listenerMock.DataContainerMapRegistering(null, null);
            LastCall.IgnoreArguments().Repeat.Any();
            listenerMock.RelationEndPointMapRegistering(null, null);
            LastCall.IgnoreArguments().Repeat.Any();
            listenerMock.VirtualRelationEndPointStateUpdated(null, null, null);
            LastCall.IgnoreArguments().Repeat.Any();

            mockRepository.ReplayAll();

            Order order = DomainObjectIDs.Order1.GetObject <Order> ();

            order.OrderItems.Added += delegate { };

            using (innerTransaction.EnterDiscardingScope())
            {
                // preload order, but not orderItems
                order.GetHandle().GetObject();

                innerTransaction.AddListener(listenerMock);
                int loadedObjectsBefore = innerTransaction.DataManager.DataContainers.Count;
                innerTransaction.CopyCollectionEventHandlers(order, TestableClientTransaction);
                int loadedObjectsAfter = innerTransaction.DataManager.DataContainers.Count;
                Assert.That(loadedObjectsAfter, Is.EqualTo(loadedObjectsBefore));
            }

            mockRepository.VerifyAll();
        }