public void ReportCancelationCompleted_OperationsManagerStatusIsCanceled_Test() { var operationsManager = new OperationsManagerMock(); var operation = new TestOperation(operationsManager); var enqueuedToken = operation.RunAsync(); operation.ReportCancelationCompleted(); var operationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId); Assert.AreEqual(OperationState.Canceled, operationStatus.Info.State); }
public void RunAsync_OnCanceledOperation_NotBlockExecutionAndReturnsOperationGuidAndOperationsManagerResultIsEmpty_Test() { var operationsManager = new OperationsManagerMock(); var operation = new TestOperation(operationsManager); var startTime = DateTime.Now; var enqueuedToken = operation.RunAsync(); var endTime = DateTime.Now; var beforeWaitOperationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId); operation.ReportCancelationCompleted(); Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult); var afterWaitOperationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId); Assert.IsTrue(endTime - startTime < TestOperation.OperationDuration); Assert.AreEqual(OperationState.Started, beforeWaitOperationStatus.Info.State); Assert.IsNull(beforeWaitOperationStatus.Result); Assert.AreEqual(OperationState.Canceled, afterWaitOperationStatus.Info.State); Assert.IsNull(afterWaitOperationStatus.Result); }