public void GetOperationStatus_OnFailureOperation_ThrowsTheSameExceptionAsTheOperationsManagerThrows_Test() { var operationsManager = new OperationsManagerMock(); var service = new TestService(operationsManager); var operationStartInformation = service.DoOperationAsync(isFailure: true); Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult); Exception exceptionFromOperationsManager = null; try { var operationStatusFromOperationsManager = operationsManager.GetOperationStatus(operationStartInformation.OperationId); } catch (Exception ex) { exceptionFromOperationsManager = ex; } Exception exceptionFromService = null; try { var operationStatusFromService = service.GetOperationStatus(operationStartInformation.OperationId); } catch (Exception ex) { exceptionFromService = ex; } Assert.IsNotNull(exceptionFromService); Assert.AreEqual(exceptionFromOperationsManager, exceptionFromService); }
public void DoOperationAsync_OnCancelationRequstedButNotCompletedOperation_NotBlockExecutionAndReturnsOperationGuidWithAttributeInformationAndOperationsManagerStatusIsCompletedSuuccessfuly_Test() { var operationsManager = new OperationsManagerMock(); var service = new TestService(operationsManager); var startTime = DateTime.Now; var operationStartInformation = service.DoOperationAsync(); var endTime = DateTime.Now; var beforeWaitOperationStatus = operationsManager.GetOperationStatus(operationStartInformation.OperationId); service.CancelOperation(operationStartInformation.OperationId); Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult); var afterWaitOperationStatus = operationsManager.GetOperationStatus(operationStartInformation.OperationId); Assert.IsTrue(endTime - startTime < TestOperation.OperationDuration); Assert.AreEqual(TestOperation.IS_REPORTING_PROGRESS, operationStartInformation.IsReportingProgress); Assert.AreEqual(TestOperation.IS_SUPPORTING_CANCEL, operationStartInformation.IsSupportingCancel); Assert.AreEqual(TestOperation.SUGGESTED_POLLING_INTERVAL_MILLISECONDS, operationStartInformation.SuggestedPollingIntervalMilliseconds); Assert.AreEqual(TestOperation.EXPECTED_COMPLETION_TIME_MILLISECONDS, operationStartInformation.ExpectedCompletionTimeMilliseconds); Assert.AreEqual(OperationState.Started, beforeWaitOperationStatus.Info.State); Assert.IsNull(beforeWaitOperationStatus.Result); Assert.AreEqual(OperationState.CompletedSucessfully, afterWaitOperationStatus.Info.State); Assert.AreEqual(TestOperation.TEST_OPERATION_RESULT, afterWaitOperationStatus.Result); }
public void DoOperationAsync_OnFailureOperation_NotBlockExecutionAndReturnsOperationGuidWithAttributeInformationAndOperationsManagerStatusThrows_Test() { var operationsManager = new OperationsManagerMock(); var service = new TestService(operationsManager); var startTime = DateTime.Now; var operationStartInformation = service.DoOperationAsync(isFailure: true); var endTime = DateTime.Now; var beforeWaitOperationStatus = operationsManager.GetOperationStatus(operationStartInformation.OperationId); Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult); Exception exception = null; try { operationsManager.GetOperationStatus(operationStartInformation.OperationId); } catch (Exception ex) { exception = ex; } Assert.IsTrue(endTime - startTime < TestOperation.OperationDuration); Assert.AreEqual(TestOperation.IS_REPORTING_PROGRESS, operationStartInformation.IsReportingProgress); Assert.AreEqual(TestOperation.IS_SUPPORTING_CANCEL, operationStartInformation.IsSupportingCancel); Assert.AreEqual(TestOperation.SUGGESTED_POLLING_INTERVAL_MILLISECONDS, operationStartInformation.SuggestedPollingIntervalMilliseconds); Assert.AreEqual(TestOperation.EXPECTED_COMPLETION_TIME_MILLISECONDS, operationStartInformation.ExpectedCompletionTimeMilliseconds); Assert.AreEqual(OperationState.Started, beforeWaitOperationStatus.Info.State); Assert.IsNull(beforeWaitOperationStatus.Result); Assert.AreEqual(TestOperation.OperationException, exception); }
public void CancelOperation_OperationStatusIsCancelationPendingInOperationsManager_Test() { var operationsManager = new OperationsManagerMock(); var service = new TestService(operationsManager); var operationStartInformation = service.DoOperationAsync(); service.CancelOperation(operationStartInformation.OperationId); var operationStatus = operationsManager.GetOperationStatus(operationStartInformation.OperationId); Assert.AreEqual(OperationState.CancelationPending, operationStatus.Info.State); }
public void GetOperationStatus_ReturnsTheSameStatusAsTheOperationsManagerStatus_Test() { var operationsManager = new OperationsManagerMock(); var service = new TestService(operationsManager); var operationStartInformation = service.DoOperationAsync(); Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult); var operationStatusFromOperationsManager = operationsManager.GetOperationStatus(operationStartInformation.OperationId); var operationStatusFromService = service.GetOperationStatus(operationStartInformation.OperationId); Assert.AreEqual(operationStatusFromOperationsManager.Result, operationStatusFromService.Result); Assert.AreEqual(operationStatusFromOperationsManager.Info.State, operationStatusFromService.Info.State); Assert.AreEqual(operationStatusFromOperationsManager.Info.Progress, operationStatusFromService.Info.Progress); }