public When_EmailDeliveryStatusService_Is_Called_To_Send_Email_With_Invalid_Email_And_No_Opportunity() { var configuration = new MatchingConfiguration { MatchingServiceSupportEmailAddress = SupportEmailAddress }; var logger = Substitute.For <ILogger <Application.Services.EmailDeliveryStatusService> >(); _emailService = Substitute.For <IEmailService>(); _emailService.GetEmailBodyFromNotifyClientAsync(_notificationId).Returns( new EmailDeliveryStatusDto { Body = "Body", Subject = "Subject", EmailDeliveryStatusType = EmailDeliveryStatusType.PermanentFailure }); _emailService.GetEmailHistoryAsync(_notificationId).Returns( new EmailHistoryDto { NotificationId = _notificationId, OpportunityId = null, OpportunityItemId = null, SentTo = "*****@*****.**", Status = "permanent-failure", EmailTemplateId = 11, EmailTemplateName = "EmployerAupaBlank", CreatedBy = "CreatedBy" }); var messageQueueService = Substitute.For <IMessageQueueService>(); _opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityRepository.GetEmailDeliveryStatusForEmployerAsync(1, "*****@*****.**").Returns( new EmailBodyDtoBuilder() .AddEmployerEmail().Build()); var emailDeliveryStatusService = new Application.Services.EmailDeliveryStatusService(configuration, _emailService, _opportunityRepository, messageQueueService, logger); emailDeliveryStatusService.SendEmailDeliveryStatusAsync(_notificationId).GetAwaiter().GetResult(); }
private async Task <EmailBodyDto> GetEmailBodyDto(EmailTemplateName emailTemplateName, EmailHistoryDto emailHistoryDto) { if (!emailHistoryDto.OpportunityId.HasValue) { return(null); } EmailBodyDto emailBodyDto = null; switch (emailTemplateName) { case EmailTemplateName.EmployerFeedback: case EmailTemplateName.EmployerFeedbackV2: case EmailTemplateName.EmployerReferral: case EmailTemplateName.EmployerReferralComplex: case EmailTemplateName.EmployerReferralV3: case EmailTemplateName.EmployerReferralV4: case EmailTemplateName.EmployerReferralV5: emailBodyDto = await _opportunityRepository.GetEmailDeliveryStatusForEmployerAsync( emailHistoryDto.OpportunityId.Value, emailHistoryDto.SentTo); break; case EmailTemplateName.ProviderFeedback: case EmailTemplateName.ProviderFeedbackV2: case EmailTemplateName.ProviderQuarterlyUpdate: case EmailTemplateName.ProviderReferral: case EmailTemplateName.ProviderReferralComplex: case EmailTemplateName.ProviderReferralV3: case EmailTemplateName.ProviderReferralV4: case EmailTemplateName.ProviderReferralV5: emailBodyDto = await _opportunityRepository.GetEmailDeliveryStatusForProviderAsync( emailHistoryDto.OpportunityId.Value, emailHistoryDto.SentTo); break; } return(emailBodyDto); }