< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Data.Seeding.MasterUserOptions
Assembly: ArturRios.Heimdall.Data
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Infrastructure/ArturRios.Heimdall.Data/Seeding/MasterUserOptions.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 30
Line coverage: 100%
Branch coverage
70%
Covered branches: 7
Total branches: 10
Branch coverage: 70%
Method coverage
100%
Covered methods: 3
Fully covered methods: 3
Total methods: 3
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Name()100%11100%
get_IsComplete()100%44100%
FromEnvironment()50%66100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Infrastructure/ArturRios.Heimdall.Data/Seeding/MasterUserOptions.cs

#LineLine coverage
 1namespace ArturRios.Heimdall.Data.Seeding;
 2
 3/// <summary>
 4///     Credentials for the master system administrator, read from the
 5///     <c>HEIMDALL_MASTER_USER_*</c> environment variables. They are used only when the
 6///     database holds no system administrator yet — see <c>DatabaseSeeder</c>.
 7/// </summary>
 9278public sealed record MasterUserOptions(string Name, string Email, string Password)
 9{
 10    /// <summary>Environment variable holding the master user's display name.</summary>
 11    public const string NameVariable = "HEIMDALL_MASTER_USER_NAME";
 12
 13    /// <summary>Environment variable holding the master user's e-mail address.</summary>
 14    public const string EmailVariable = "HEIMDALL_MASTER_USER_EMAIL";
 15
 16    /// <summary>Environment variable holding the master user's plain-text password.</summary>
 17    public const string PasswordVariable = "HEIMDALL_MASTER_USER_PASSWORD";
 18
 19    /// <summary>Whether all three values are present, so a master user could be created.</summary>
 20    public bool IsComplete =>
 721        !string.IsNullOrWhiteSpace(Name) &&
 722        !string.IsNullOrWhiteSpace(Email) &&
 723        !string.IsNullOrWhiteSpace(Password);
 24
 25    /// <summary>Reads the three variables from the current process environment.</summary>
 90126    public static MasterUserOptions FromEnvironment() => new(
 90127        Environment.GetEnvironmentVariable(NameVariable) ?? string.Empty,
 90128        Environment.GetEnvironmentVariable(EmailVariable) ?? string.Empty,
 90129        Environment.GetEnvironmentVariable(PasswordVariable) ?? string.Empty);
 30}