public When_ProviderFeedBackService_Is_Called_To_Send_Employer_Feedback_Emails_To_Primary_Contact_Only( ProviderFeedbackFixture testFixture) { _testFixture = testFixture; _dateTimeProvider = Substitute.For <IDateTimeProvider>(); _dateTimeProvider .UtcNow() .Returns(new DateTime(2019, 12, 13)); _dateTimeProvider .GetNthWorkingDayDate(Arg.Any <DateTime>(), Arg.Any <int>(), Arg.Any <IList <DateTime> >()) .Returns(new DateTime(2019, 12, 13)); _emailService = Substitute.For <IEmailService>(); _opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityRepository .GetReferralsForProviderFeedbackAsync(Arg.Any <DateTime>()) .Returns(new ValidProviderFeedbackDtoListBuilder() .Build()); var providerFeedbackService = new ProviderFeedbackService( _testFixture.Configuration, _testFixture.Logger, _emailService, _testFixture.BankHolidayRepository, _opportunityRepository, _dateTimeProvider); _result = providerFeedbackService.SendProviderFeedbackEmailsAsync("TestUser").GetAwaiter().GetResult(); }
public When_ProviderFeedbackService_Is_Called_To_Send_Provider_Feedback_Emails_When_ProviderFeedbackEmailsEnabled_Is_False( ProviderFeedbackFixture testFixture) { _dateTimeProvider = Substitute.For <IDateTimeProvider>(); _emailService = Substitute.For <IEmailService>(); _bankHolidayRepository = Substitute.For <IRepository <BankHoliday> >(); _opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityRepository.GetReferralsForProviderFeedbackAsync(Arg.Any <DateTime>()) .Returns(new ValidProviderFeedbackDtoListBuilder().Build()); testFixture.Configuration.ProviderFeedbackEmailsEnabled = false; var providerFeedbackService = new ProviderFeedbackService( testFixture.Configuration, testFixture.Logger, _emailService, _bankHolidayRepository, _opportunityRepository, _dateTimeProvider); _result = providerFeedbackService .SendProviderFeedbackEmailsAsync("TestUser") .GetAwaiter().GetResult(); }
public When_ProviderFeedBackService_Is_Called_To_Send_Employer_Feedback_Emails_With_Single_Provider( ProviderFeedbackFixture testFixture) { _testFixture = testFixture; _dateTimeProvider = Substitute.For <IDateTimeProvider>(); _dateTimeProvider .UtcNow() .Returns(new DateTime(2019, 12, 13)); _dateTimeProvider .GetNthWorkingDayDate(Arg.Any <DateTime>(), Arg.Any <int>(), Arg.Any <IList <DateTime> >()) .Returns(new DateTime(2019, 12, 13)); _emailService = Substitute.For <IEmailService>(); _emailService .When(x => x.SendEmailAsync(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <int?>(), Arg.Any <int?>(), Arg.Any <IDictionary <string, string> >(), Arg.Any <string>())) .Do(x => { var address = x.ArgAt <string>(1); var tokens = x.Arg <Dictionary <string, string> >(); if (tokens.TryGetValue("other_email_details", out var contact)) { _otherEmails[address] = contact; } }); _opportunityRepository = Substitute.For <IOpportunityRepository>(); _opportunityRepository .GetReferralsForProviderFeedbackAsync(Arg.Any <DateTime>()) .Returns(new ValidProviderFeedbackDtoListBuilder() .AddSecondaryContact() .Build()); var providerFeedbackService = new ProviderFeedbackService( _testFixture.Configuration, _testFixture.Logger, _emailService, _testFixture.BankHolidayRepository, _opportunityRepository, _dateTimeProvider); _result = providerFeedbackService.SendProviderFeedbackEmailsAsync("TestUser").GetAwaiter().GetResult(); }