using Bogus; using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.UserManager.Domain.Entities; using EnvelopeGenerator.Application.Envelopes.Commands; using EnvelopeGenerator.Domain.Entities; using MediatR; using Microsoft.Extensions.DependencyInjection; namespace EnvelopeGenerator.Tests.Application; public class TestBase : Faker { protected Fake.Host Host; protected User User => Host.User; protected IMediator Mediator => Host.Mediator; protected CreateEnvelopeCommand FakeCreateEnvelopeCommand => this.CreateEnvelopeCommand(Host.User.Id); protected Envelope FakeEnvelope => this.CreateEnvelope(Host.User.Id); protected IRepository GetRepository() where T : class => Host.GetRepository(); protected IRepository Repository => Host.Services.GetRequiredService(); [SetUp] public virtual async Task Setup() { Host = Fake.CreateHost(); await Host.AddSamples(); } [TearDown] public virtual void TearDown() { Host.Dispose(); } }