예제 #1
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");
                }
            }
        }
예제 #2
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");
                }
            }
        }