< Summary - Syki

Information
Class: Syki.Back.Settings.SocialLoginSettings
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Settings/SocialLoginSettings.cs
Tag: 97_27801654829
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 52
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 Crap Score Cyclomatic complexity Line coverage
get_Google()100%11100%
.ctor(...)100%22100%

File(s)

/home/runner/work/syki/syki/Back/Settings/SocialLoginSettings.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authentication.Google;
 2
 3namespace Syki.Back.Settings;
 4
 5public class SocialLoginSettings : SettingsBase
 6{
 187    public GoogleLoginSettings Google { get; set; } = new();
 8
 29    public SocialLoginSettings(IConfiguration configuration)
 10    {
 211        configuration.GetSection("SocialLogin").Bind(this);
 12
 213        if (Google.Enabled)
 14        {
 215            RequireNonEmpty(Google.ClientId);
 216            RequireNonEmpty(Google.ClientSecret);
 17        }
 218    }
 19}
 20
 21public class GoogleLoginSettings
 22{
 23    public bool Enabled { get; set; }
 24    public string ClientId { get; set; }
 25    public string ClientSecret { get; set; }
 26    public string? TokenEndpoint { get; set; }
 27    public string? AuthorizationEndpoint { get; set; }
 28    public string? UserInformationEndpoint { get; set; }
 29}
 30
 31public static class SocialLoginSettingsExtensions
 32{
 33    extension(IConfiguration configuration)
 34    {
 35        public SocialLoginSettings SocialLogin => new(configuration);
 36    }
 37
 38    extension(GoogleOptions options)
 39    {
 40        public void OverrideWith(GoogleLoginSettings settings)
 41        {
 42            if (settings.AuthorizationEndpoint.HasValue())
 43                options.AuthorizationEndpoint = settings.AuthorizationEndpoint!;
 44
 45            if (settings.TokenEndpoint.HasValue())
 46                options.TokenEndpoint = settings.TokenEndpoint!;
 47
 48            if (settings.UserInformationEndpoint.HasValue())
 49                options.UserInformationEndpoint = settings.UserInformationEndpoint!;
 50        }
 51    }
 52}