public ProviderFeedbackFixture() { Configuration = new MatchingConfiguration { ProviderFeedbackEmailsEnabled = true, ProviderFeedbackWorkingDayInMonth = 10, SendEmailEnabled = true }; Logger = Substitute.For <ILogger <ProviderFeedbackService> >(); var mockDbSet = new BankHolidayListBuilder() .Build() .AsQueryable() .BuildMockDbSet(); var contextOptions = new DbContextOptions <MatchingDbContext>(); var mockContext = Substitute.For <MatchingDbContext>(contextOptions); mockContext.Set <BankHoliday>().Returns(mockDbSet); BankHolidayRepository = new GenericRepository <BankHoliday>(NullLogger <GenericRepository <BankHoliday> > .Instance, mockContext); BankHolidayRepository = Substitute.For <IRepository <BankHoliday> >(); BankHolidayRepository .GetManyAsync(Arg.Any <Expression <Func <BankHoliday, bool> > >()) .Returns(new List <BankHoliday>().AsQueryable()); }
public When_EmployerFeedbackService_Is_Called_To_Send_Employer_Feedback_Emails_With_Multiple_Employers( EmployerFeedbackFixture testFixture) { _testFixture = testFixture; var 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.GetReferralsForEmployerFeedbackAsync(Arg.Any <DateTime>()) .Returns(new EmployerFeedbackDtoListBuilder().AddAnotherEmployer() .Build()); var mockDbSet = new BankHolidayListBuilder() .Build() .AsQueryable() .BuildMockDbSet(); var contextOptions = new DbContextOptions <MatchingDbContext>(); var mockContext = Substitute.For <MatchingDbContext>(contextOptions); mockContext.Set <BankHoliday>().Returns(mockDbSet); IRepository <BankHoliday> bankHolidayRepository = new GenericRepository <BankHoliday>(NullLogger <GenericRepository <BankHoliday> > .Instance, mockContext); var employerFeedbackService = new EmployerFeedbackService( _testFixture.Configuration, _testFixture.Logger, _emailService, bankHolidayRepository, _opportunityRepository, dateTimeProvider); _result = employerFeedbackService .SendEmployerFeedbackEmailsAsync("TestUser") .GetAwaiter().GetResult(); }