using JdeScoping.Core.Interfaces; using JdeScoping.Infrastructure.Auth; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Shouldly; namespace JdeScoping.Api.Tests.Configuration; public class ServiceRegistrationTests { [Fact] public void AddInfrastructure_WithUseFakeAuthTrue_RegistersFakeAuthService() { // Arrange var services = new ServiceCollection(); services.AddLogging(); var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary { ["Auth:UseFakeAuth"] = "true" }) .Build(); // Act services.AddInfrastructure(configuration); var provider = services.BuildServiceProvider(); var authService = provider.GetRequiredService(); // Assert authService.ShouldBeOfType(); } [Fact] public void AddInfrastructure_WithUseFakeAuthFalse_RegistersLdapAuthService() { // Arrange var services = new ServiceCollection(); services.AddLogging(); var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary { ["Auth:UseFakeAuth"] = "false", ["Ldap:ServerUrls:0"] = "ldap://localhost:389", ["Ldap:SearchBase"] = "DC=example,DC=com" }) .Build(); // Act services.AddInfrastructure(configuration); var provider = services.BuildServiceProvider(); var authService = provider.GetRequiredService(); // Assert authService.ShouldBeOfType(); } [Fact] public void AddInfrastructure_WithNoAuthConfig_RegistersLdapAuthServiceByDefault() { // Arrange var services = new ServiceCollection(); services.AddLogging(); var configuration = new ConfigurationBuilder() .AddInMemoryCollection(new Dictionary { ["Ldap:ServerUrls:0"] = "ldap://localhost:389", ["Ldap:SearchBase"] = "DC=example,DC=com" }) .Build(); // Act services.AddInfrastructure(configuration); var provider = services.BuildServiceProvider(); var authService = provider.GetRequiredService(); // Assert authService.ShouldBeOfType(); } }