public Task CheckScheduleQueue() { return(Task.Run(() => { var schedulerNotification = GetLatestQueueMessage(); if (schedulerNotification != null) { var yesterday = DateTime.UtcNow.AddDays(-1); var endOfDay = new DateTime(yesterday.Year, yesterday.Month, yesterday.Day, 23, 59, 59); _logger.Info("Calling vacancy status processor to queue vacancies eligible for closure"); _vacancyStatusProcessor.QueueVacanciesForClosure(endOfDay); MessageService.DeleteMessage(ScheduledJobQueues.VacancyStatus, schedulerNotification.MessageId, schedulerNotification.PopReceipt); _logger.Info("Queued vacancies eligible for closure and deleted message"); } })); }
public void QueuesMultipleVacancies(int capacity) { //Arrange var deadline = DateTime.Now; int outParam; var result = new Fixture().Build <VacancySummary>() .With(x => x.Status, VacancyStatus.Live) .CreateMany(capacity).ToList(); _apprenticeshipVacancySummaryService .Setup(m => m.Find(It.Is <ApprenticeshipVacancyQuery>(q => q.LatestClosingDate == deadline), out outParam)) .Returns(result); //Act _processor.QueueVacanciesForClosure(deadline); //Assert _apprenticeshipVacancySummaryService.Verify( m => m.Find(It.Is <ApprenticeshipVacancyQuery>(q => q.LatestClosingDate == deadline), out outParam), Times.Once); _apprenticeshipVacancySummaryService.Verify(m => m.Find(It.IsAny <ApprenticeshipVacancyQuery>(), out outParam), Times.Once); _serviceBus.Verify(m => m.PublishMessage(It.IsAny <VacancyEligibleForClosure>()), Times.Exactly(capacity)); }