using Microsoft.Extensions.DependencyInjection; using SPTarkov.Server.Core.Models.Utils; using SPTarkov.Server.Core.Utils; using SPTarkov.Server.Core.Utils.Cloners; using SPTarkov.Server.Core.Utils.Json.Converters; using UnitTests.Mock; namespace UnitTests; public class DI { private static IServiceProvider _serviceProvider; private static IServiceProvider ConfigureServices() { if (_serviceProvider != null) { return _serviceProvider; } var services = new ServiceCollection(); var jsonUtil = new JsonUtil([ new SptJsonConverterRegistrator() ]); var mathUtil = new MathUtil(); services.AddSingleton(jsonUtil); services.AddSingleton(mathUtil); services.AddSingleton(); services.AddSingleton,MockLogger>(); services.AddSingleton(); services.AddSingleton(); return _serviceProvider = services.BuildServiceProvider(); } public static T GetService() where T : notnull { return ConfigureServices().GetRequiredService(); } }