using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.Extensions.DependencyInjection; using ZB.MOM.WW.ScadaBridge.Security; using ZB.MOM.WW.ScadaBridge.Security.Auth; using Xunit; namespace ZB.MOM.WW.ScadaBridge.Security.Tests; public class DisableLoginRegistrationTests { private static async Task ResolveCookieSchemeAsync(bool disableLogin) { var services = new ServiceCollection(); services.AddLogging(); services.AddSecurity(disableLogin); await using var sp = services.BuildServiceProvider(); var provider = sp.GetRequiredService(); return await provider.GetSchemeAsync(CookieAuthenticationDefaults.AuthenticationScheme); } [Fact] public async Task FlagTrue_RegistersAutoLoginHandlerUnderCookieScheme() { var scheme = await ResolveCookieSchemeAsync(disableLogin: true); Assert.Equal(typeof(AutoLoginAuthenticationHandler), scheme!.HandlerType); } [Fact] public async Task FlagFalse_RegistersCookieHandler() { var scheme = await ResolveCookieSchemeAsync(disableLogin: false); Assert.Equal(typeof(CookieAuthenticationHandler), scheme!.HandlerType); } }