public async Task ExecuteWithResultShouldDisposeConnection() { var connection = NewOpenConnection(); var connectionHelper = new DefaultConnectionHelper(() => connection.Object); await connectionHelper.ExecuteAsync <int>(dbConnection => Task.FromResult(0)); connection.Verify(x => x.Dispose(), Times.Once); }
public async Task ExecuteShouldDisposeConnection() { var connection = NewOpenConnection(); var connectionHelper = new DefaultConnectionHelper(() => connection.Object); await connectionHelper.ExecuteAsync(dbConnection => Task.CompletedTask); connection.Verify(x => x.Dispose(), Times.Once); }
public async Task ExecuteWithRollbackAndResultShouldRollbackOnFailure() { var connection = NewOpenConnection(); var transaction = NewTransaction(); connection.Setup(x => x.BeginTransaction(It.IsAny <IsolationLevel>())).Returns(transaction.Object); transaction.Setup(x => x.Rollback()); var connectionHelper = new DefaultConnectionHelper(() => connection.Object); await Assert.ThrowsExceptionAsync <Exception>( () => connectionHelper.ExecuteWithRollbackOnFailureAsync <int>( dbConnection => Task.FromException <int>(new Exception()))); transaction.Verify(x => x.Rollback(), Times.Once); connection.Verify(x => x.Dispose(), Times.Once); }
public async Task ExecuteWithRollbackAndReturnShouldThrowWhenActionIsNull() { var connectionHelper = new DefaultConnectionHelper(() => null); await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => connectionHelper.ExecuteWithRollbackOnFailureAsync <int>(null)); }
public async Task ExecuteShouldThrowWhenActionIsNull() { var connectionHelper = new DefaultConnectionHelper(() => null); await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => connectionHelper.ExecuteAsync(null)); }