Esempio n. 1
0
        public void RunAsync_OnFailureOperation_NotBlockExecutionAndReturnsOperationGuidAndOperationsManagerStatusThrows_Test()
        {
            var operationsManager = new OperationsManagerMock();
            var operation         = new TestOperation(operationsManager, isFailure: true);

            var startTime     = DateTime.Now;
            var enqueuedToken = operation.RunAsync();
            var endTime       = DateTime.Now;

            var beforeWaitOperationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId);

            Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult);
            Exception exception = null;

            try
            {
                operationsManager.GetOperationStatus(enqueuedToken.OperationId);
            }
            catch (Exception ex)
            {
                exception = ex;
            }
            Assert.IsTrue(endTime - startTime < TestOperation.OperationDuration);
            Assert.AreEqual(OperationState.Started, beforeWaitOperationStatus.Info.State);
            Assert.IsNull(beforeWaitOperationStatus.Result);
            Assert.AreEqual(TestOperation.OperationException, exception);
        }
 public void RunAsync_OnFailureOperation_NotBlockExecutionAndReturnsOperationGuidAndOperationsManagerStatusThrows_Test() 
 {
     var operationsManager = new OperationsManagerMock();
     var operation = new TestOperation(operationsManager, isFailure: true);
     
     var startTime = DateTime.Now;
     var enqueuedToken = operation.RunAsync();
     var endTime = DateTime.Now;
     
     var beforeWaitOperationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId);
     Thread.Sleep(TestOperation.OperationDuration + TestOperation.SafeTimeToSetOperationResult);
     Exception exception = null;
     try
     {
         operationsManager.GetOperationStatus(enqueuedToken.OperationId);
     }
     catch (Exception ex)
     {
         exception = ex;
     }
     Assert.IsTrue(endTime - startTime < TestOperation.OperationDuration);
     Assert.AreEqual(OperationState.Started, beforeWaitOperationStatus.Info.State);
     Assert.IsNull(beforeWaitOperationStatus.Result);
     Assert.AreEqual(TestOperation.OperationException, exception);
 }
Esempio n. 3
0
        public void ReportProgress_OperationsManagerStatusContainsReportedProgress_Test()
        {
            var operationsManager = new OperationsManagerMock();
            var operation         = new TestOperation(operationsManager);
            var enqueuedToken     = operation.RunAsync();

            operation.ReportProgress(TestOperation.OPERATION_PROGRESS);

            var operationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId);

            Assert.AreEqual(TestOperation.OPERATION_PROGRESS, operationStatus.Info.Progress);
        }
Esempio n. 4
0
        public void IsCancelationPending_OnOperationCancelationPendingInOperationManager_ReturnsTrue_Test()
        {
            var operationsManager = new OperationsManagerMock();
            var operation         = new TestOperation(operationsManager);
            var enqueuedToken     = operation.RunAsync();

            operationsManager.SetOperationCancelFlag(enqueuedToken.OperationId);

            var isCancelationPending = operation.IsCancelationPending();

            Assert.AreEqual(true, isCancelationPending);
        }
Esempio n. 5
0
        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_OnSuccessfulOperation_NotBlockExecutionAndReturnsOperationGuidAndOperationsManagerStatusContainsResult_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);
     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.CompletedSucessfully, afterWaitOperationStatus.Info.State);
     Assert.AreEqual(TestOperation.TEST_OPERATION_RESULT, afterWaitOperationStatus.Result);
 }
Esempio n. 7
0
        public void RunAsync_OnSuccessfulOperation_NotBlockExecutionAndReturnsOperationGuidAndOperationsManagerStatusContainsResult_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);

            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.CompletedSucessfully, afterWaitOperationStatus.Info.State);
            Assert.AreEqual(TestOperation.TEST_OPERATION_RESULT, afterWaitOperationStatus.Result);
        }
Esempio n. 8
0
        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);
        }
 public void DoOperationAsync_OnSuccessfulOperation_NotBlockExecutionAndReturnsOperationGuidWithAttributeInformationAndOperationsManagerStatusContainsResult_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);
     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 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 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 ReportProgress_OperationsManagerStatusContainsReportedProgress_Test() 
 {
     var operationsManager = new OperationsManagerMock();
     var operation = new TestOperation(operationsManager);            
     var enqueuedToken = operation.RunAsync();
     
     operation.ReportProgress(TestOperation.OPERATION_PROGRESS);
     
     var operationStatus = operationsManager.GetOperationStatus(enqueuedToken.OperationId);
     Assert.AreEqual(TestOperation.OPERATION_PROGRESS, operationStatus.Info.Progress);
 }
 public void IsCancelationPending_OnOperationCancelationPendingInOperationManager_ReturnsTrue_Test() 
 {
     var operationsManager = new OperationsManagerMock();
     var operation = new TestOperation(operationsManager);
     var enqueuedToken = operation.RunAsync();
     operationsManager.SetOperationCancelFlag(enqueuedToken.OperationId);
     
     var isCancelationPending = operation.IsCancelationPending();
     
     Assert.AreEqual(true, isCancelationPending);
 }
 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);
 }
 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 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);
 }