< Summary

Information
Class: LOCKnet.Data.PlainSqliteConnectionFactory
Assembly: LOCKnet.Data
File(s): /home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Data/PlainSqliteConnectionFactory.cs
Line coverage
94%
Covered lines: 17
Uncovered lines: 1
Coverable lines: 18
Total lines: 58
Line coverage: 94.4%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)50%2285.71%
get_Storage()100%11100%
OpenConnection()100%11100%
FromConnectionString(...)100%11100%

File(s)

/home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Data/PlainSqliteConnectionFactory.cs

#LineLine coverage
 1using LOCKnet.Data.Repositories;
 2using Microsoft.Data.Sqlite;
 3
 4namespace LOCKnet.Data;
 5
 6/// <summary>
 7/// Zentraler Connection-Factory fuer die aktuelle Plain-SQLite-Implementierung.
 8/// </summary>
 9public sealed class PlainSqliteConnectionFactory : ISqliteConnectionFactory
 10{
 11  /// <summary>
 12  /// Initialisiert eine neue Instanz von <see cref="PlainSqliteConnectionFactory"/> fuer einen Datei-Pfad.
 13  /// </summary>
 14  /// <param name="databasePath">Pfad zur SQLite-Datenbankdatei.</param>
 15  public PlainSqliteConnectionFactory(string databasePath)
 9216    : this(VaultStorageModeDetector.Detect(databasePath))
 9217  {
 9218  }
 19
 20  /// <summary>
 21  /// Initialisiert eine neue Instanz von <see cref="PlainSqliteConnectionFactory"/> fuer einen bestehenden Descriptor.
 22  /// </summary>
 23  /// <param name="storage">Der zu verwendende Storage-Descriptor.</param>
 28224  public PlainSqliteConnectionFactory(VaultStorageDescriptor storage)
 28225  {
 28226    ArgumentNullException.ThrowIfNull(storage);
 27
 28228    if (storage.Mode != VaultStorageMode.PlainSqlite)
 029      throw new InvalidOperationException("PlainSqliteConnectionFactory unterstuetzt nur PlainSqlite-Storage.");
 30
 28231    Storage = storage;
 28232  }
 33
 34  /// <summary>
 35  /// Der verwendete Storage-Descriptor.
 36  /// </summary>
 166737  public VaultStorageDescriptor Storage { get; }
 38
 39  /// <summary>
 40  /// Oeffnet eine neue Plain-SQLite-Verbindung und wendet die aktuellen Hardening-PRAGMAs an.
 41  /// </summary>
 42  /// <returns>Eine geoeffnete <see cref="SqliteConnection"/>.</returns>
 43  public SqliteConnection OpenConnection()
 82344  {
 82345    var connection = new SqliteConnection(Storage.ConnectionString);
 82346    connection.Open();
 82347    RepositoryBase.ConfigureConnection(connection);
 82248    return connection;
 82249  }
 50
 51  /// <summary>
 52  /// Erzeugt eine Plain-SQLite-Factory fuer Tests mit bereits vorhandenem Connection-String.
 53  /// </summary>
 54  /// <param name="connectionString">SQLite-Connection-String.</param>
 55  /// <returns>Eine Factory fuer die aktuelle Plain-SQLite-Implementierung.</returns>
 56  internal static PlainSqliteConnectionFactory FromConnectionString(string connectionString)
 19057    => new(VaultStorageModeDetector.DetectFromConnectionString(connectionString));
 58}