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); }
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); }
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); }
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); }
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()); }