예제 #1
0
        public override void SetUp()
        {
            base.SetUp();

            _clientTransaction = ClientTransaction.CreateRootTransaction();

            _eventBroker = new ClientTransactionEventBroker(_clientTransaction);

            _domainObject1       = _clientTransaction.ExecuteInScope(() => DomainObjectIDs.Order1.GetObject <Order> ());
            _domainObject2       = _clientTransaction.ExecuteInScope(() => DomainObjectIDs.Order3.GetObject <Order> ());
            _invalidDomainObject = _clientTransaction.ExecuteInScope(
                () =>
            {
                var order = Order.NewObject();
                order.Delete();
                return(order);
            });

            _mockRepository                 = new MockRepository();
            _order1EventReceiverMock        = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_domainObject1);
            _order2EventReceiverMock        = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_domainObject2);
            _invalidObjectEventReceiverMock = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_invalidDomainObject);

            _unloadEventReceiverMock = _mockRepository.StrictMock <IUnloadEventReceiver> ();
            ((TestDomainBase)_domainObject1).SetUnloadEventReceiver(_unloadEventReceiverMock);
            ((TestDomainBase)_domainObject2).SetUnloadEventReceiver(_unloadEventReceiverMock);

            _transactionEventReceiverMock = _mockRepository.StrictMock <ClientTransactionMockEventReceiver> (_clientTransaction);

            _loadEventReceiverMock = _mockRepository.StrictMock <ILoadEventReceiver> ();
            ((TestDomainBase)_domainObject1).SetLoadEventReceiver(_loadEventReceiverMock);
            ((TestDomainBase)_domainObject2).SetLoadEventReceiver(_loadEventReceiverMock);

            _extensionMock = _mockRepository.StrictMock <IClientTransactionExtension> ();
            _extensionMock.Stub(stub => stub.Key).Return("extension");
            _extensionMock.Replay();
            _eventBroker.Extensions.Add(_extensionMock);
            _extensionMock.BackToRecord();

            _listenerMock = _mockRepository.StrictMock <IClientTransactionListener> ();
            _eventBroker.AddListener(_listenerMock);
        }
예제 #2
0
        public override void SetUp()
        {
            base.SetUp();

            _order1              = DomainObjectIDs.Order1.GetObject <Order> ();
            _customer1           = _order1.Customer;
            _orginalCustomerName = _customer1.Name;

            _mockRepository = new MockRepository();

            _clientTransactionMockEventReceiver = _mockRepository.StrictMock <ClientTransactionMockEventReceiver> (TestableClientTransaction);
            _clientTransactionExtensionMock     = _mockRepository.StrictMock <IClientTransactionExtension> ();
            _clientTransactionExtensionMock.Stub(stub => stub.Key).Return("MockExtension");
            _clientTransactionExtensionMock.Replay();
            TestableClientTransaction.Extensions.Add(_clientTransactionExtensionMock);
            _clientTransactionExtensionMock.BackToRecord();

            _order1MockEventReceiver    = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_order1);
            _customer1MockEventReceiver = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_customer1);
        }
예제 #3
0
        public void SubCommit_OfDeletedObject_DoesNotRaiseDeletedEvent()
        {
            using (_subTransaction.EnterDiscardingScope())
            {
                ClassWithAllDataTypes domainObject = DomainObjectIDs.ClassWithAllDataTypes1.GetObject <ClassWithAllDataTypes> ();

                MockRepository repository = new MockRepository();

                IClientTransactionExtension extensionMock = repository.StrictMock <IClientTransactionExtension>();
                extensionMock.Stub(stub => stub.Key).Return("Mock");
                extensionMock.Replay();
                _subTransaction.Extensions.Add(extensionMock);
                try
                {
                    extensionMock.BackToRecord();

                    extensionMock.ObjectDeleting(_subTransaction, domainObject);
                    extensionMock.ObjectDeleted(_subTransaction, domainObject);

                    repository.ReplayAll();
                    domainObject.Delete();
                    repository.VerifyAll();

                    repository.BackToRecordAll();
                    extensionMock.Committing(null, null, null);
                    LastCall.IgnoreArguments();
                    extensionMock.CommitValidate(null, null);
                    LastCall.IgnoreArguments();
                    extensionMock.Committed(null, null);
                    LastCall.IgnoreArguments();
                    repository.ReplayAll();

                    _subTransaction.Commit();
                    repository.VerifyAll();
                }
                finally
                {
                    _subTransaction.Extensions.Remove("Mock");
                }
            }
        }
예제 #4
0
        public void SubCommit_OfDeletedObject_DoesNotRaiseDeletedEvent_WithRelations()
        {
            using (_subTransaction.EnterDiscardingScope())
            {
                Order domainObject = DomainObjectIDs.Order1.GetObject <Order> ();
                domainObject.OrderItems[0].Delete();

                MockRepository repository = new MockRepository();

                IClientTransactionExtension extensionMock = repository.StrictMock <IClientTransactionExtension> ();
                extensionMock.Replay();
                extensionMock.Stub(stub => stub.Key).Return("Mock");
                _subTransaction.Extensions.Add(extensionMock);
                try
                {
                    extensionMock.BackToRecord();

                    using (repository.Ordered())
                    {
                        extensionMock.Committing(null, null, null);
                        LastCall.IgnoreArguments();
                        extensionMock.CommitValidate(null, null);
                        LastCall.IgnoreArguments();
                        extensionMock.Committed(null, null);
                        LastCall.IgnoreArguments();
                    }

                    repository.ReplayAll();

                    _subTransaction.Commit();

                    repository.VerifyAll();
                }
                finally
                {
                    _subTransaction.Extensions.Remove("Mock");
                }
            }
        }
예제 #5
0
        public override void SetUp()
        {
            base.SetUp();

            _order1       = DomainObjectIDs.Order1.GetObject <Order> ();
            _orderTicket1 = _order1.OrderTicket;
            _location1    = DomainObjectIDs.Location1.GetObject <Location>();
            _client1      = _location1.Client;

            _mockRepository = new MockRepository();

            _extension                 = _mockRepository.StrictMock <IClientTransactionExtension>();
            _order1EventReceiver       = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_order1);
            _orderTicket1EventReceiver = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_orderTicket1);
            _location1EventReceiver    = _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_location1);
            _mockRepository.StrictMock <DomainObjectMockEventReceiver> (_client1); // no events must be signalled for _client1

            _extension.Stub(stub => stub.Key).Return("Name");
            _extension.Replay();
            ClientTransactionScope.CurrentTransaction.Extensions.Add(_extension);
            _extension.BackToRecord();
        }