public async Task DoesNotUpdateCursorIfIncidentCollectorFails() { ManualStatusChangeCollector1 .Setup(x => x.FetchLatest()) .ReturnsAsync(new DateTime(2018, 11, 12)) .Verifiable(); ManualStatusChangeCollector2 .Setup(x => x.FetchLatest()) .ReturnsAsync(new DateTime(2018, 11, 13)) .Verifiable(); IncidentCollector .Setup(x => x.FetchLatest()) .ThrowsAsync(new Exception()) .Verifiable(); var cursor = new DateTime(2018, 11, 12); await Updater.Update(cursor); ManualStatusChangeCollector1.Verify(); ManualStatusChangeCollector2.Verify(); IncidentCollector.Verify(); ActiveEventEntityUpdater .Verify( x => x.UpdateAllAsync(It.IsAny <DateTime>()), Times.Never()); Cursor .Verify( x => x.Set(It.IsAny <string>(), It.IsAny <DateTime>()), Times.Never()); }
public async Task UpdatesCursorIfSuccessful() { ManualStatusChangeCollector1 .Setup(x => x.FetchLatest()) .ReturnsAsync(new DateTime(2018, 11, 12)) .Verifiable(); ManualStatusChangeCollector2 .Setup(x => x.FetchLatest()) .ReturnsAsync(new DateTime(2018, 11, 13)) .Verifiable(); IncidentCollector .Setup(x => x.FetchLatest()) .ReturnsAsync(new DateTime(2018, 11, 14)) .Verifiable(); var cursor = new DateTime(2018, 11, 12); ActiveEventEntityUpdater .Setup(x => x.UpdateAllAsync(cursor)) .Returns(Task.CompletedTask) .Verifiable(); Cursor .Setup(x => x.Set(StatusUpdater.LastUpdatedCursorName, cursor)) .Returns(Task.CompletedTask) .Verifiable(); await Updater.Update(cursor); ManualStatusChangeCollector1.Verify(); ManualStatusChangeCollector2.Verify(); IncidentCollector.Verify(); ActiveEventEntityUpdater.Verify(); Cursor.Verify(); }