public void When_FailedDateRangeBlocksExistInTargetPeriodAndNumberIsGreaterThanBlocksLimit_ThenReturnOldestBlocksUpToCountLimit() { // ARRANGE var now = DateTime.UtcNow; var taskExecution1 = _executionHelper.InsertOverrideTaskExecution(_taskDefinitionId, new TimeSpan(0, 1, 0), now.AddMinutes(-32), now.AddMinutes(-1)); var block1 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-2), now.AddMinutes(-1)); var block2 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-12), now.AddMinutes(-11)); var block3 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-22), now.AddMinutes(-21)); var block4 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-32), now.AddMinutes(-31)); _blocksHelper.InsertBlockExecution(taskExecution1, block1, now.AddMinutes(-2), now.AddMinutes(-2), now.AddMinutes(-1), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block2, now.AddMinutes(-12), now.AddMinutes(-12), now.AddMinutes(-11), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block3, now.AddMinutes(-22), now.AddMinutes(-22), now.AddMinutes(-21), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block4, now.AddMinutes(-32), now.AddMinutes(-32), now.AddMinutes(-31), BlockExecutionStatus.Completed); int blockCountLimit = 2; var request = new FindFailedBlocksRequest(new TaskId(TestConstants.ApplicationName, TestConstants.TaskName), "1", BlockType.DateRange, DateTime.UtcNow.AddMinutes(-200), DateTime.UtcNow, blockCountLimit, 3); // ACT var sut = CreateSut(); var failedBlocks = sut.FindFailedRangeBlocks(request); // ASSERT Assert.AreEqual(blockCountLimit, failedBlocks.Count); Assert.IsTrue(failedBlocks.Any(x => x.RangeBlockId == block2.ToString())); Assert.IsTrue(failedBlocks.Any(x => x.RangeBlockId == block3.ToString())); }
public void When_FailedDateRangeBlocksExistInTargetPeriodAndNumberIsLessThanBlocksLimit_ThenReturnAllFailedBlocks() { // ARRANGE var now = DateTime.UtcNow; var taskExecution1 = _executionHelper.InsertOverrideTaskExecution(_taskDefinitionId, new TimeSpan(0, 1, 0), now.AddMinutes(-12), now.AddMinutes(-1)); var block1 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-2), now.AddMinutes(-1)); var block2 = _blocksHelper.InsertDateRangeBlock(_taskDefinitionId, now.AddMinutes(-12), now.AddMinutes(-11)); _blocksHelper.InsertBlockExecution(taskExecution1, block1, now.AddMinutes(-2), now.AddMinutes(-2), now.AddMinutes(-1), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block2, now.AddMinutes(-12), now.AddMinutes(-12), now.AddMinutes(-11), BlockExecutionStatus.Completed); var request = new FindFailedBlocksRequest(new TaskId(TestConstants.ApplicationName, TestConstants.TaskName), "1", BlockType.DateRange, DateTime.UtcNow.AddMinutes(-20), DateTime.UtcNow, 2, 3); // ACT var sut = CreateSut(); var failedBlocks = sut.FindFailedRangeBlocks(request); // ASSERT Assert.AreEqual(1, failedBlocks.Count); Assert.AreEqual(block1.ToString(), failedBlocks[0].RangeBlockId); }
public void When_FailedObjectBlocksExistOutsideTargetPeriod_ThenReturnNoBlocks() { // ARRANGE var now = DateTime.UtcNow; var taskExecution1 = _executionHelper.InsertOverrideTaskExecution(_taskDefinitionId, new TimeSpan(0, 1, 0), now.AddMinutes(-212), now.AddMinutes(-200)); var block1 = _blocksHelper.InsertObjectBlock(_taskDefinitionId, now.AddMinutes(-200), Guid.NewGuid().ToString()); var block2 = _blocksHelper.InsertObjectBlock(_taskDefinitionId, now.AddMinutes(-212), Guid.NewGuid().ToString()); _blocksHelper.InsertBlockExecution(taskExecution1, block1, now.AddMinutes(-200), now.AddMinutes(-200), now.AddMinutes(-201), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block2, now.AddMinutes(-212), now.AddMinutes(-212), now.AddMinutes(-211), BlockExecutionStatus.Completed); var request = new FindFailedBlocksRequest(new TaskId(TestConstants.ApplicationName, TestConstants.TaskName), "1", BlockType.Object, DateTime.UtcNow.AddMinutes(-20), DateTime.UtcNow, 2, 3); // ACT var sut = CreateSut(); var failedBlocks = sut.FindFailedObjectBlocks <string>(request); // ASSERT Assert.AreEqual(0, failedBlocks.Count); }
public async Task When_FailedNumericRangeBlocksExistOutsideTargetPeriod_ThenReturnNoBlocks() { // ARRANGE var now = DateTime.UtcNow; var taskExecution1 = _executionHelper.InsertOverrideTaskExecution(_taskDefinitionId, new TimeSpan(0, 1, 0), now.AddMinutes(-212), now.AddMinutes(-200)); var block1 = _blocksHelper.InsertNumericRangeBlock(_taskDefinitionId, 1, 2, now.AddMinutes(-200)); var block2 = _blocksHelper.InsertNumericRangeBlock(_taskDefinitionId, 3, 4, now.AddMinutes(-212)); _blocksHelper.InsertBlockExecution(taskExecution1, block1, now.AddMinutes(-200), now.AddMinutes(-200), now.AddMinutes(-201), BlockExecutionStatus.Failed); _blocksHelper.InsertBlockExecution(taskExecution1, block2, now.AddMinutes(-212), now.AddMinutes(-212), now.AddMinutes(-211), BlockExecutionStatus.Completed); var request = new FindFailedBlocksRequest(new TaskId(TestConstants.ApplicationName, TestConstants.TaskName), "1", BlockType.NumericRange, DateTime.UtcNow.AddMinutes(-20), DateTime.UtcNow, 2, 3); // ACT var sut = CreateSut(); var failedBlocks = await sut.FindFailedRangeBlocksAsync(request); // ASSERT Assert.Equal(0, failedBlocks.Count); }
private List <IObjectBlockContext <T> > GetFailedObjectBlocks <T>(ObjectBlockRequest <T> blockRequest, int blockCountLimit) { var failedBlockRequest = new FindFailedBlocksRequest(new TaskId(blockRequest.ApplicationName, blockRequest.TaskName), blockRequest.TaskExecutionId, blockRequest.BlockType, DateTime.UtcNow - blockRequest.FailedTaskDetectionRange, DateTime.UtcNow, blockCountLimit, blockRequest.FailedTaskRetryLimit ); var failedBlocks = _blockRepository.FindFailedObjectBlocks <T>(failedBlockRequest); return(CreateObjectBlockContexts <T>(blockRequest, failedBlocks)); }
private IList <ProtoListBlock> GetFailedListBlocks(ListBlockRequest blockRequest, int blockCountLimit) { var failedBlockRequest = new FindFailedBlocksRequest(new TaskId(blockRequest.ApplicationName, blockRequest.TaskName), blockRequest.TaskExecutionId, blockRequest.BlockType, DateTime.UtcNow - blockRequest.FailedTaskDetectionRange, DateTime.UtcNow, blockCountLimit, blockRequest.FailedTaskRetryLimit ); var failedBlocks = _blockRepository.FindFailedListBlocks(failedBlockRequest); return(failedBlocks); }
private async Task <List <IObjectBlockContext <T> > > GetFailedObjectBlocksAsync <T>(ObjectBlockRequest <T> blockRequest, int blockCountLimit) { var failedBlockRequest = new FindFailedBlocksRequest(new TaskId(blockRequest.ApplicationName, blockRequest.TaskName), blockRequest.TaskExecutionId, blockRequest.BlockType, DateTime.UtcNow - blockRequest.FailedTaskDetectionRange, DateTime.UtcNow, blockCountLimit, blockRequest.FailedTaskRetryLimit ); var failedBlocks = await _blockRepository.FindFailedObjectBlocksAsync <T>(failedBlockRequest).ConfigureAwait(false); return(await CreateObjectBlockContextsAsync <T>(blockRequest, failedBlocks).ConfigureAwait(false)); }
private async Task <IList <ProtoListBlock> > GetFailedListBlocksAsync(ListBlockRequest blockRequest, int blockCountLimit) { var failedBlockRequest = new FindFailedBlocksRequest(new TaskId(blockRequest.ApplicationName, blockRequest.TaskName), blockRequest.TaskExecutionId, blockRequest.BlockType, DateTime.UtcNow - blockRequest.FailedTaskDetectionRange, DateTime.UtcNow, blockCountLimit, blockRequest.FailedTaskRetryLimit ); var failedBlocks = await _blockRepository.FindFailedListBlocksAsync(failedBlockRequest).ConfigureAwait(false); return(failedBlocks); }