< Summary

Line coverage
100%
Covered lines: 23
Uncovered lines: 0
Coverable lines: 23
Total lines: 44
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
FromConfiguration(...)100%1100%
.ctor(...)100%1100%
get_ConnectionString()100%1100%
get_ProviderName()100%1100%
CreateConnectionAsync()100%2100%

File(s)

/home/rob/github-runner/_work/snacks-bb-g1-weidinger-g1-sinnreich/snacks-bb-g1-weidinger-g1-sinnreich/src/Snacks.DAL/Common/DefaultConnectionFactory.cs

#LineLine coverage
 1namespace Snacks.DAL.Common;
 2
 3using System.Data.Common;
 4using System.Threading.Tasks;
 5using Microsoft.Extensions.Configuration;
 6
 7public class DefaultConnectionFactory : IConnectionFactory
 8{
 9    protected DbProviderFactory dbProviderFactory;
 10
 11    public static IConnectionFactory FromConfiguration(IConfiguration configuration, string connectionStringConfigName)
 20212    {
 20213        (string connectionString, string providerName) =
 20214          ConfigurationUtil.GetConnectionParameters(configuration, connectionStringConfigName);
 20015        return new DefaultConnectionFactory(connectionString, providerName);
 20016    }
 17
 20818    public DefaultConnectionFactory(string connectionString, string providerName)
 20819    {
 20820        this.ConnectionString = connectionString;
 20821        this.ProviderName = providerName;
 22
 20823        DbUtil.RegisterAdoProviders();
 20824        this.dbProviderFactory = DbProviderFactories.GetFactory(providerName);
 20825    }
 26
 33427    public string ConnectionString { get; }
 28
 229    public string ProviderName { get; }
 30
 31    public async Task<DbConnection> CreateConnectionAsync()
 33632    {
 33
 33634        var connection = dbProviderFactory.CreateConnection();
 33635        if (connection is null)
 236        {
 237            throw new InvalidOperationException("DBProviderFactory.CreateConnection() returned null");
 38        }
 33439        connection.ConnectionString = ConnectionString;
 33440        await connection.OpenAsync();
 41
 33242        return connection;
 33243    }
 44}