Beispiel #1
0
            public void Uses_interception()
            {
                var transactionMock = new Mock <DbTransaction>();

                transactionMock.Protected().Setup <DbConnection>("DbConnection").Returns(new Mock <DbConnection>().Object);
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);
                var transactionInterceptorMock = new Mock <IDbTransactionInterceptor>();

                DbInterception.Add(transactionInterceptorMock.Object);
                try
                {
                    transaction.Commit();
                }
                finally
                {
                    DbInterception.Remove(transactionInterceptorMock.Object);
                }

                transactionInterceptorMock.Verify(
                    m => m.Committing(It.IsAny <DbTransaction>(), It.IsAny <DbTransactionInterceptionContext>()),
                    Times.Once());
                transactionInterceptorMock.Verify(
                    m => m.Committed(It.IsAny <DbTransaction>(), It.IsAny <DbTransactionInterceptionContext>()),
                    Times.Once());
                transactionMock.Verify(m => m.Commit(), Times.Once());
            }
            public void Commit_wraps_exceptions()
            {
                var transactionMock = new Mock<DbTransaction>();
                transactionMock.Setup(m => m.Commit()).Throws<NotImplementedException>();
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);

                Assert.Throws<EntityException>(() => transaction.Commit());
            }
Beispiel #3
0
            public void Commit_wraps_exceptions()
            {
                var transactionMock = new Mock <DbTransaction>();

                transactionMock.Setup(m => m.Commit()).Throws <NotImplementedException>();
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);

                Assert.Throws <EntityException>(() => transaction.Commit());
            }
Beispiel #4
0
            public void Commit_does_not_wrap_CommitFailedException()
            {
                var transactionMock = new Mock <DbTransaction>();

                transactionMock.Setup(m => m.Commit()).Throws <CommitFailedException>();
                transactionMock.Protected().Setup <DbConnection>("DbConnection").Returns(new Mock <DbConnection>().Object);
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);

                Assert.Throws <CommitFailedException>(() => transaction.Commit());
            }
            public void Uses_interception()
            {
                var transactionMock = new Mock<DbTransaction>();
                transactionMock.Protected().Setup<DbConnection>("DbConnection").Returns(new Mock<DbConnection>().Object);
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);
                var transactionInterceptorMock = new Mock<IDbTransactionInterceptor>();
                DbInterception.Add(transactionInterceptorMock.Object);
                try
                {
                    transaction.Commit();
                }
                finally
                {
                    DbInterception.Remove(transactionInterceptorMock.Object);
                }

                transactionInterceptorMock.Verify(
                    m => m.Committing(It.IsAny<DbTransaction>(), It.IsAny<DbTransactionInterceptionContext>()),
                        Times.Once());
                transactionInterceptorMock.Verify(
                    m => m.Committed(It.IsAny<DbTransaction>(), It.IsAny<DbTransactionInterceptionContext>()),
                        Times.Once());
                transactionMock.Verify(m => m.Commit(), Times.Once());
            }
            public void Commit_does_not_wrap_CommitFailedException()
            {
                var transactionMock = new Mock<DbTransaction>();
                transactionMock.Setup(m => m.Commit()).Throws<CommitFailedException>();
                transactionMock.Protected().Setup<DbConnection>("DbConnection").Returns(new Mock<DbConnection>().Object);
                var transaction = new EntityTransaction(new EntityConnection(), transactionMock.Object);

                Assert.Throws<CommitFailedException>(() => transaction.Commit());
            }