public async Task <IEnumerable <T> > ExecuteSelectAllAsync <T>(string sql, Func <IDatabaseResultReader, T> mappingFunc) where T : class, IRestResource { try { using (IDatabaseConnection connection = _sqlClassProvider.CreateSqlConnection(_connectionString)) using (IDatabaseCommand command = _sqlClassProvider.CreateSqlCommand(sql, connection)) { await connection.OpenAsync().ConfigureAwait(false); using (IDatabaseResultReader reader = await command.ExecuteReaderAsync().ConfigureAwait(false)) { List <T> results = new List <T>(); while (await reader.ReadAsync().ConfigureAwait(false)) { results.Add(mappingFunc(reader)); } return(results); } } } catch (InvalidCastException ex) { throw InvalidConfigurationException.DataTypeMismatch(typeof(T).Name, ex); } }
public void CreateSqlConnection_NullConnectionStringParameter_ThrowsArgumentNullException() { // Arrange ISqlClassProvider sut = CreateSut(); TestDelegate result = () => sut.CreateSqlConnection(null); // Act // Assert Assert.Throws <ArgumentNullException>(result); }
public void CreateSqlConnection_CorrectParameters_ReturnsIDatabaseConnectionInstance() { // Arrange ISqlClassProvider sut = CreateSut(); string connectionString = string.Empty; // Act var result = sut.CreateSqlConnection(connectionString); // Assert Assert.IsInstanceOf <IDatabaseConnection>(result); }