Esempio n. 1
0
        public void ShouldReturnConnectionGivenOnConstruction()
        {
            Mock <DbConnection>         dbConnectionMock  = new Mock <DbConnection>();
            Mock <DbTransaction>        dbTransactionMock = new Mock <DbTransaction>();
            Mock <ISyncPolicy>          retryPolicyMock   = new Mock <ISyncPolicy>();
            ReliableDbConnectionWrapper connectionWrapper = new ReliableDbConnectionWrapper(dbConnectionMock.Object, retryPolicyMock.Object);

            var transactionWrapper = new ReliableDbTransactionWrapper(dbTransactionMock.Object, connectionWrapper, retryPolicyMock.Object);

            Assert.Equal(connectionWrapper, transactionWrapper.Connection);
        }
Esempio n. 2
0
        public void ShouldDisposeInnerTransaction()
        {
            Mock <DbConnection>         dbConnectionMock  = new Mock <DbConnection>();
            MockDbTransaction           dbTransactionMock = new MockDbTransaction();
            Mock <ISyncPolicy>          retryPolicyMock   = new Mock <ISyncPolicy>();
            ReliableDbConnectionWrapper connectionWrapper = new ReliableDbConnectionWrapper(dbConnectionMock.Object, retryPolicyMock.Object);

            var transactionWrapper = new ReliableDbTransactionWrapper(dbTransactionMock, connectionWrapper, retryPolicyMock.Object);

            transactionWrapper.Dispose();
            Assert.Equal(1, dbTransactionMock.DisposalCount);
        }
Esempio n. 3
0
        public void ShouldSetWrappedTransactionToInnerCommand()
        {
            MockDbCommand      dbCommandMock   = new MockDbCommand();
            Mock <ISyncPolicy> retryPolicyMock = new Mock <ISyncPolicy>();
            var commandWrapper = new ReliableDbCommandWrapper(dbCommandMock, retryPolicyMock.Object);

            MockDbTransaction            mockDbTransaction  = new MockDbTransaction();
            ReliableDbTransactionWrapper transactionWrapper = new ReliableDbTransactionWrapper(mockDbTransaction, null, null);

            commandWrapper.Transaction = transactionWrapper;
            Assert.Equal(mockDbTransaction, dbCommandMock.Transaction);
        }
Esempio n. 4
0
        public void ShouldTakeIsolationLevelFromInnerTransaction()
        {
            IsolationLevel              testIsolationLevel = IsolationLevel.ReadCommitted;
            Mock <DbConnection>         dbConnectionMock   = new Mock <DbConnection>();
            Mock <DbTransaction>        dbTransactionMock  = new Mock <DbTransaction>();
            Mock <ISyncPolicy>          retryPolicyMock    = new Mock <ISyncPolicy>();
            ReliableDbConnectionWrapper connectionWrapper  = new ReliableDbConnectionWrapper(dbConnectionMock.Object, retryPolicyMock.Object);

            dbTransactionMock.Setup(x => x.IsolationLevel).Returns(testIsolationLevel);

            var transactionWrapper = new ReliableDbTransactionWrapper(dbTransactionMock.Object, connectionWrapper, retryPolicyMock.Object);

            Assert.Equal(testIsolationLevel, transactionWrapper.IsolationLevel);
        }
Esempio n. 5
0
        public void ShouldRollBackWithRetriesInInnerTransaction()
        {
            Mock <DbConnection>         dbConnectionMock  = new Mock <DbConnection>();
            Mock <DbTransaction>        dbTransactionMock = new Mock <DbTransaction>();
            Mock <ISyncPolicy>          retryPolicyMock   = new Mock <ISyncPolicy>();
            ReliableDbConnectionWrapper connectionWrapper = new ReliableDbConnectionWrapper(dbConnectionMock.Object, retryPolicyMock.Object);

            var transactionWrapper = new ReliableDbTransactionWrapper(dbTransactionMock.Object, connectionWrapper, retryPolicyMock.Object);

            retryPolicyMock.Setup(x => x.Execute(It.IsAny <Action>())).Callback <Action>(a => a.Invoke());

            transactionWrapper.Rollback();
            retryPolicyMock.Verify(x => x.Execute(It.IsAny <Action>()));
            dbTransactionMock.Verify(x => x.Rollback());
        }