Example #1
0
        public When_EmployerFeedbackService_Is_Called_To_Send_Employer_Feedback_Emails_When_EmployerFeedbackEmailsEnabled_Is_False(
            EmployerFeedbackFixture testFixture)
        {
            _dateTimeProvider = Substitute.For <IDateTimeProvider>();

            _emailService = Substitute.For <IEmailService>();

            _bankHolidayRepository = Substitute.For <IRepository <BankHoliday> >();
            _opportunityRepository = Substitute.For <IOpportunityRepository>();
            _opportunityRepository.GetReferralsForEmployerFeedbackAsync(Arg.Any <DateTime>())
            .Returns(new EmployerFeedbackDtoListBuilder().Build());

            testFixture.Configuration.EmployerFeedbackEmailsEnabled = false;

            var employerFeedbackService = new EmployerFeedbackService(
                testFixture.Configuration,
                testFixture.Logger,
                _emailService,
                _bankHolidayRepository,
                _opportunityRepository,
                _dateTimeProvider);

            _result = employerFeedbackService
                      .SendEmployerFeedbackEmailsAsync("TestUser")
                      .GetAwaiter().GetResult();
        }
Example #2
0
        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();
        }