public async Task If_NumberOfBlocksAndStatusesOfBlockExecutionsCorrectAtEveryStep() { // ARRANGE // ACT and // ASSERT bool startedOk; using (var executionContext = CreateTaskExecutionContext()) { startedOk = await executionContext.TryStartAsync(); Assert.True(startedOk); if (startedOk) { var blocks = await executionContext.GetObjectBlocksAsync <string>(x => x.WithObject("Testing1")); Assert.Equal(1, _blocksHelper.GetBlockCount(TestConstants.ApplicationName, TestConstants.TaskName)); int expectedNotStartedCount = 1; int expectedCompletedCount = 0; Assert.Equal(expectedNotStartedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.NotStarted)); Assert.Equal(0, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Started)); Assert.Equal(expectedCompletedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Completed)); foreach (var block in blocks) { await block.StartAsync(); expectedNotStartedCount--; Assert.Equal(expectedNotStartedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.NotStarted)); Assert.Equal(1, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Started)); // processing here await block.CompleteAsync(); expectedCompletedCount++; Assert.Equal(expectedCompletedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Completed)); } } } }
public async Task If_AsDateRange_NumberOfBlocksAndStatusesOfBlockExecutionsCorrectAtEveryStep() { // ARRANGE int blockCountLimit = 10; // ACT and // ASSERT bool startedOk; using (var executionContext = CreateTaskExecutionContext(blockCountLimit)) { startedOk = await executionContext.TryStartAsync(); Assert.True(startedOk); if (startedOk) { var fromDate = DateTime.UtcNow.AddHours(-12); var toDate = DateTime.UtcNow; var maxBlockRange = new TimeSpan(0, 30, 0); var rangeBlocks = await executionContext.GetDateRangeBlocksAsync(x => x.WithRange(fromDate, toDate, maxBlockRange)); Assert.Equal(10, _blocksHelper.GetBlockCount(TestConstants.ApplicationName, TestConstants.TaskName)); int expectedNotStartedCount = blockCountLimit; int expectedCompletedCount = 0; Assert.Equal(expectedNotStartedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.NotStarted)); Assert.Equal(0, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Started)); Assert.Equal(expectedCompletedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Completed)); foreach (var rangeBlock in rangeBlocks) { await rangeBlock.StartAsync(); expectedNotStartedCount--; Assert.Equal(expectedNotStartedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.NotStarted)); Assert.Equal(1, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Started)); // processing here await rangeBlock.CompleteAsync(); expectedCompletedCount++; Assert.Equal(expectedCompletedCount, _blocksHelper.GetBlockExecutionCountByStatus(TestConstants.ApplicationName, TestConstants.TaskName, BlockExecutionStatus.Completed)); } } } }