Esempio n. 1
0
        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);
        }