using LiteCharms.Features.Extensions; using LiteCharms.Features.MidrandBooks.Abstractions; using LiteCharms.Features.MidrandBooks.Extensions; namespace LiteCharms.Features.MidrandBooks.Tests.Common; public class Fixture : IDisposable { public IConfiguration Configuration { get; set; } public IServiceProvider Services { get; set; } public IMediator Mediator { get; set; } private readonly CancellationTokenSource cancellationTokenSource = new(); public CancellationToken CancellationToken => cancellationTokenSource.Token; public Fixture() { Configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddUserSecrets() .AddJsonFile(Path.Combine(Directory.GetCurrentDirectory(), "appsettings.json"), optional: true, reloadOnChange: true) .AddEnvironmentVariables() .Build(); Services = new ServiceCollection() .AddMediator() .AddLogging() .AddEmailServiceBus() .AddGarageS3(Configuration) .AddMidrandShopDatabase(Configuration) .AddEmailServices(Configuration) .AddSingleton(Configuration) .AddShopServices() .BuildServiceProvider(); Mediator = Services.GetRequiredService(); } public void Dispose() { } }