public async Task Should_Only_Get_Runners_With_LastUpdatedDate_Greater_Than_Given() { // Arrange var runner1 = new Domain.Clients.QueueRunner { Name = "Runner 1", IsRunning = true }; var runner2 = new Domain.Clients.QueueRunner { Name = "Runner 2", IsRunning = true }; await _context.AddRangeAsync(runner1, runner2).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); Thread.Sleep(1000); var testDate = DateTime.UtcNow; Thread.Sleep(1000); runner1.Name = "Changed Runner 1"; await _context.SaveChangesAsync().ConfigureAwait(false); // Act var result = (await _sut.GetRunners(lastUpdatedSince: testDate).ConfigureAwait(false)).ToArray(); // Assert result.ShouldNotBeNull(); result.Length.ShouldBe(1); result[0].Name.ShouldBe(runner1.Name); }
public async Task Should_Mark_Runner_As_Task_Processed() { // Arrange var runner = new Domain.Clients.QueueRunner { Name = "Runner 1", IsRunning = true }; await _context.AddAsync(runner).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); // Act await _sut.MarkQueueRunnerTaskProcessed(runner.Name).ConfigureAwait(false); // Assert (await _context.Runners.SingleAsync(r => r.Name == runner.Name).ConfigureAwait(false)).LastTaskProcessed.ShouldNotBeNull(); }
public async Task Should_Only_Get_Runners_With_Tag_And_IsRunningFlag_And_LastUpdatedDateSince_And_LastUpdatedDateBefore_Provided() { // Arrange const string tag = "Tag"; var runner1 = new Domain.Clients.QueueRunner { Name = "Runner 1", IsRunning = true }; var runner2 = new Domain.Clients.QueueRunner { Name = "Runner 2", IsRunning = false }; var runner3 = new Domain.Clients.QueueRunner { Name = "Runner 3", IsRunning = true, Tag = tag }; await _context.AddRangeAsync(runner1, runner2, runner3).ConfigureAwait(false); await _context.SaveChangesAsync().ConfigureAwait(false); Thread.Sleep(1000); var testDate = DateTime.UtcNow; Thread.Sleep(1000); runner1.Tag = tag; await _context.SaveChangesAsync().ConfigureAwait(false); // Act var result = (await _sut.GetRunners(tag, true, testDate, DateTime.UtcNow).ConfigureAwait(false)).ToArray(); // Assert result.ShouldNotBeNull(); result.Length.ShouldBe(2); result[0].Name.ShouldBe(runner1.Name); result[1].Name.ShouldBe(runner3.Name); }