public async Task GivenTwoPendingExecutions_WhenFailingToPublish_ShouldReScheduled() { // Given var request = new SchedulePendingRequest(); var executions = new[] { JobExecution.New(Job.New("test", "test payload", true, DateTime.UtcNow, DateTime.UtcNow, "* * * * *"), DateTime.UtcNow), JobExecution.New(Job.New("test", "test payload", true, DateTime.UtcNow, DateTime.UtcNow, "* * * * *"), DateTime.UtcNow), }; Mock.Get(_jobExecutionRepository) .SetupSequence(x => x.GetAndMarkPending(It.IsAny <int>(), It.IsAny <DateTime>(), CancellationToken.None)) .ReturnsAsync(executions) .ReturnsAsync(Enumerable.Empty <JobExecution>()); Mock.Get(_jobPublisher) .Setup(x => x.PublishManyAsync(It.IsAny <IEnumerable <JobExecution> >(), CancellationToken.None)) .ReturnsAsync(false); // When await _handler.Handle(request, CancellationToken.None); // Then Mock.Get(_jobExecutionRepo) .Verify(x => x.UpdateManyAsync(It.IsAny <IEnumerable <JobExecution> >(), CancellationToken.None), Times.Once); }
public async Task GivenNoPendingExecutions_WhenHandling_ShouldReturnZeroScheduled() { // Given var request = new SchedulePendingRequest(); Mock.Get(_jobExecutionRepository) .Setup(x => x.GetAndMarkPending(It.IsAny <int>(), It.IsAny <DateTime>(), CancellationToken.None)) .ReturnsAsync(Enumerable.Empty <JobExecution>()); // When var result = await _handler.Handle(request, CancellationToken.None); // Then result.NumScheduled.ShouldBe(0); }
public async Task GivenNoPendingExecutions_WhenHandling_ShouldNotQueueExecutions() { // Given var request = new SchedulePendingRequest(); Mock.Get(_jobExecutionRepository) .Setup(x => x.GetAndMarkPending(It.IsAny <int>(), It.IsAny <DateTime>(), CancellationToken.None)) .ReturnsAsync(Enumerable.Empty <JobExecution>()); // When await _handler.Handle(request, CancellationToken.None); // Then Mock.Get(_jobPublisher) .Verify(x => x.PublishManyAsync(It.IsAny <IEnumerable <JobExecution> >(), CancellationToken.None), Times.Never); }
public async Task GivenTwoPendingExecutions_WhenHandling_ShouldReturnTwoScheduled() { // Given var request = new SchedulePendingRequest(); var executions = new[] { JobExecution.New(Job.New("test", "test payload", true, DateTime.UtcNow, DateTime.UtcNow, "* * * * *"), DateTime.UtcNow), JobExecution.New(Job.New("test", "test payload", true, DateTime.UtcNow, DateTime.UtcNow, "* * * * *"), DateTime.UtcNow), }; Mock.Get(_jobExecutionRepository) .SetupSequence(x => x.GetAndMarkPending(It.IsAny <int>(), It.IsAny <DateTime>(), CancellationToken.None)) .ReturnsAsync(executions) .ReturnsAsync(Enumerable.Empty <JobExecution>()); // When var result = await _handler.Handle(request, CancellationToken.None); // Then result.NumScheduled.ShouldBe(2); }