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");
                }
            }));
        }
Beispiel #2
0
        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));
        }