public IDbCommand CreateDbCommand()
        {
            IDbCommand command = NHibernateSession.Connection.CreateCommand();

            NHibernateTransaction.Enlist(command);
            return(command);
        }
        public IUnitOfWork Create()
        {
            this.AssertNotDisposed();

            var transaction = new NHibernateTransaction(this.sessionFactory, this.connection, this.interceptors, this.auditConfiguration, this.dateTime, this.userContext, this.logger);

            return(new NHibernateUnitOfWork(transaction, this.logger));
        }
        public void Dispose_DisposesUnderlyingTransaction()
        {
            var sut = new NHibernateTransaction(transactionMock.Object);
            sut.Dispose();

            Assert.IsFalse(sut.IsActive);
            transactionMock.Verify(x => x.Dispose());
        }
        public void Rollback_GivenAnInactiveTransaction_ThrowsInvalidOperationException()
        {
            transactionMock.SetupGet(x => x.IsActive).Returns(false);

            using (var sut = new NHibernateTransaction(transactionMock.Object))
            {
                Assert.Throws<InvalidOperationException>(() => sut.Rollback());
            }
        }
        public void Rollback_Calls_Rollback_On_Underlying_ITransaction()
        {
            var mockTransaction = MockRepository.GenerateMock<ITransaction>();
            mockTransaction.Expect(x => x.Rollback()).IgnoreArguments();

            var transaction = new NHibernateTransaction(mockTransaction, x => { }, y => { });
            transaction.Rollback();

            mockTransaction.VerifyAllExpectations();
        }
        public void Rollback_CallsUnderlyingTransactionRollbackMethod()
        {
            using (var sut = new NHibernateTransaction(transactionMock.Object))
            {
                sut.Rollback();

                Assert.IsFalse(sut.IsActive);
            }

            transactionMock.Verify(x => x.Rollback());
        }
        public void Commit_CallsUnderlyingTransactionCommitMethod()
        {
            using (var sut = new NHibernateTransaction(transactionMock.Object))
            {
                sut.Commit();

                Assert.IsFalse(sut.IsActive);
            }

            transactionMock.Verify(x => x.Commit());
        }
Example #8
0
        public void Rollback_Calls_Rollback_On_Underlying_ITransaction()
        {
            var mockTransaction = MockRepository.GenerateMock <ITransaction>();

            mockTransaction.Expect(x => x.Rollback()).IgnoreArguments();

            var transaction = new NHibernateTransaction(mockTransaction, x => { }, y => { });

            transaction.Rollback();

            mockTransaction.VerifyAllExpectations();
        }
        public void Commit_Raises_TransactionComitted_Event()
        {
            var mockTransaction = MockRepository.GenerateMock<ITransaction>();
            mockTransaction.Expect(x => x.Commit());

            bool commitCalled = false;
            bool rollbackCalled = false;
            var transaction = new NHibernateTransaction(mockTransaction, committed => { commitCalled = true; }, rolledBack => { rollbackCalled = true; });

            transaction.Commit();

            mockTransaction.VerifyAllExpectations();
            commitCalled.ShouldBeTrue();
            rollbackCalled.ShouldBeFalse();
        }
Example #10
0
        public void Commit_Raises_TransactionComitted_Event()
        {
            var mockTransaction = MockRepository.GenerateMock <ITransaction>();

            mockTransaction.Expect(x => x.Commit());

            bool commitCalled   = false;
            bool rollbackCalled = false;
            var  transaction    = new NHibernateTransaction(mockTransaction, committed => { commitCalled = true; }, rolledBack => { rollbackCalled = true; });

            transaction.Commit();

            mockTransaction.VerifyAllExpectations();
            commitCalled.ShouldBeTrue();
            rollbackCalled.ShouldBeFalse();
        }
Example #11
0
        /// <summary>
        /// Begins a new storage-transaction
        /// </summary>
        public IGenericTransaction BeginTransaction()
        {
            if (TheresAnActiveTransaction()) { throw new InvalidOperationException(ErrorMessages.TransactionAlreadyStarted); };

            var transaction = new NHibernateTransaction(Session.BeginTransaction());
            transaction.TransactionRolledBack += transaction_TransactionRolledBack;
            transaction.TransactionCommitted += transaction_TransactionCommitted;

            currentTransaction = transaction;

            MakeActive();
            return currentTransaction;
        }
 public void WhenCreated_WithActiveTransaction_IsActive()
 {
     using (var sut = new NHibernateTransaction(transactionMock.Object))
     {
         Assert.IsTrue(sut.IsActive);
     }
 }
        public void WhenCreated_WithInactiveTransaction_IsNotActive()
        {
            transactionMock.SetupGet(x => x.IsActive).Returns(false);

            using (var sut = new NHibernateTransaction(transactionMock.Object))
            {
                Assert.IsFalse(sut.IsActive);
            }
        }