using AutoMapper; using DigitalData.Core.Abstraction.Application.Repository; using DigitalData.Core.Infrastructure; using DigitalData.EmailProfilerDispatcher.Abstraction.Entities; using EnvelopeGenerator.Application.Common.Dto.EnvelopeReceiver; using EnvelopeGenerator.Application.Common.Notifications.DocSigned; using EnvelopeGenerator.Application.Common.Notifications.DocSigned.Handlers; using Microsoft.Extensions.DependencyInjection; namespace EnvelopeGenerator.Tests.Application; public class DocSignedNotificationTests : TestBase { protected IMapper _mapper; protected override void ConfigureServices(IServiceCollection services) { services.AddTransient(); // overwrite EmailOutRepository services.AddDbRepository(opt => opt.RegisterEntity(ctx => ctx.EMailOuts)); } public override async Task Setup() { await base.Setup(); _mapper = Host.Services.GetRequiredService(); } [TestCase("h.tek@digitaldata.works", TestName = "SendSignedMailHandler_ShouldNotThrow_WithValidEmail")] public async Task SendSignedMailHandler_ShouldNotThrow(string emailAddress) { /// Assert CancellationToken cancel = new(); var mediator = Mediator; // Create envelope var envCmd = this.CreateEnvelopeCommand(User.Id); var env = await mediator.Send(envCmd, cancel); // Create receiver var rcvCmd = this.CreateReceiverCommand(emailAddress); (var rcv, _) = await mediator.Send(rcvCmd, cancel); // Create envelope receiver var envRcv = this.CreateEnvelopeReceiver(env!.Id, rcv.Id); envRcv = await Repository.CreateAsync(envRcv, cancel); var envRcvDto = _mapper.Map(envRcv); var docSignedNtf = envRcvDto.ToDocSignedNotification(new () { }); var sendSignedMailHandler = Host.Services.GetRequiredService(); // Act + Assert Assert.DoesNotThrowAsync(async () => await sendSignedMailHandler.Handle(docSignedNtf, cancel)); } }