using System; using System.Collections.Generic; using Fab2ApprovalSystem.Models; using Fab2ApprovalSystem.Utilities; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace Fab2ApprovalTests.Utilities; [TestClass] public class UserUtilitiesTests { #pragma warning disable CS8618 private static ILogger? _Logger; private static TestContext _TestContext; private static WebApplicationFactory _WebApplicationFactory; #pragma warning restore [ClassInitialize] public static void ClassInitAsync(TestContext testContext) { _TestContext = testContext; _WebApplicationFactory = new WebApplicationFactory(); IServiceProvider serviceProvider = _WebApplicationFactory.Services.CreateScope().ServiceProvider; _Logger = serviceProvider.GetRequiredService>(); } private static void NonThrowTryCatch() { try { throw new Exception(); } catch (Exception) { } } #if Release [Ignore] #endif [TestMethod] public void UserUtilitiesIsAttachedOnly() { _Logger?.LogInformation("Starting Web Application"); IServiceProvider? serviceProvider = _WebApplicationFactory?.Services.CreateScope().ServiceProvider; AppSettings? appSettings = serviceProvider?.GetRequiredService(); Assert.IsTrue(appSettings is not null); if (System.Diagnostics.Debugger.IsAttached) { List allUserModels = UserUtilities.GetMesaUsers(); Assert.IsNotNull(allUserModels); } _Logger?.LogInformation("{TestName} completed", _TestContext?.TestName); NonThrowTryCatch(); } }