< Summary - Syki

Information
Class: Syki.Back.Settings.SocialLoginSettingsExtensions
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Settings/SocialLoginSettings.cs
Tag: 97_27801654829
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 52
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
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_SocialLogin(...)100%11100%
OverrideWith(...)100%66100%

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{
 7    public GoogleLoginSettings Google { get; set; } = new();
 8
 9    public SocialLoginSettings(IConfiguration configuration)
 10    {
 11        configuration.GetSection("SocialLogin").Bind(this);
 12
 13        if (Google.Enabled)
 14        {
 15            RequireNonEmpty(Google.ClientId);
 16            RequireNonEmpty(Google.ClientSecret);
 17        }
 18    }
 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    {
 235        public SocialLoginSettings SocialLogin => new(configuration);
 36    }
 37
 38    extension(GoogleOptions options)
 39    {
 40        public void OverrideWith(GoogleLoginSettings settings)
 41        {
 242            if (settings.AuthorizationEndpoint.HasValue())
 243                options.AuthorizationEndpoint = settings.AuthorizationEndpoint!;
 44
 245            if (settings.TokenEndpoint.HasValue())
 246                options.TokenEndpoint = settings.TokenEndpoint!;
 47
 248            if (settings.UserInformationEndpoint.HasValue())
 249                options.UserInformationEndpoint = settings.UserInformationEndpoint!;
 250        }
 51    }
 52}