< Summary

Information
Class: LOCKnet.Data.VaultStorageModeDetector
Assembly: LOCKnet.Data
File(s): /home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Data/VaultStorageModeDetector.cs
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 47
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Detect(...)100%11100%
DetectFromConnectionString(...)100%11100%

File(s)

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

#LineLine coverage
 1using Microsoft.Data.Sqlite;
 2
 3namespace LOCKnet.Data;
 4
 5/// <summary>
 6/// Ermittelt den aktuell verwendeten Storage-Modus fuer eine Vault.
 7/// </summary>
 8public static class VaultStorageModeDetector
 9{
 10  /// <summary>
 11  /// Erzeugt den aktuellen Storage-Descriptor fuer eine dateibasierte Vault.
 12  /// </summary>
 13  /// <param name="databasePath">Pfad zur Vault-Datei.</param>
 14  /// <returns>Der Descriptor fuer die aktuelle Plain-SQLite-Implementierung.</returns>
 15  public static VaultStorageDescriptor Detect(string databasePath)
 9216  {
 9217    ArgumentException.ThrowIfNullOrWhiteSpace(databasePath);
 18
 9219    var fullPath = Path.GetFullPath(databasePath);
 9220    var builder = new SqliteConnectionStringBuilder
 9221    {
 9222      DataSource = fullPath,
 9223    };
 24
 9225    return new VaultStorageDescriptor(
 9226      VaultStorageMode.PlainSqlite,
 9227      builder.ToString(),
 9228      fullPath,
 9229      requiresKeyAtOpen: false);
 9230  }
 31
 32  /// <summary>
 33  /// Erzeugt den aktuellen Storage-Descriptor fuer einen bereits vorliegenden Connection-String.
 34  /// </summary>
 35  /// <param name="connectionString">SQLite-Connection-String.</param>
 36  /// <returns>Der Descriptor fuer die aktuelle Plain-SQLite-Implementierung.</returns>
 37  internal static VaultStorageDescriptor DetectFromConnectionString(string connectionString)
 19038  {
 19039    ArgumentException.ThrowIfNullOrWhiteSpace(connectionString);
 40
 19041    return new VaultStorageDescriptor(
 19042      VaultStorageMode.PlainSqlite,
 19043      connectionString,
 19044      StorageRewriteArtifacts.TryResolveDatabasePath(connectionString),
 19045      requiresKeyAtOpen: false);
 19046  }
 47}