public void ContinueWithActionInterfaceToOperationCallbackTest()
        {
            var operation = new AsyncOperation<bool>();
            IOperationResult<bool> operationResult = OperationResult.CreateResult(OperationType.PageNavigation, this, true,
                DataContext.Empty);

            bool isInvoked = false;
            var continuationAction = new ActionContinuationMock
            {
                Invoke = result =>
                {
                    result.ShouldEqual(operationResult);
                    isInvoked = true;
                }
            };

            operation.ContinueWith(continuationAction);
            isInvoked.ShouldBeFalse();
            operation.ToOperationCallback().Invoke(operationResult);
            isInvoked.ShouldBeTrue();

            isInvoked = false;
            operation.ContinueWith(continuationAction);
            isInvoked.ShouldBeTrue();
        }
        public void ContinueWithActionInterfaceContinuationTest()
        {
            var operation = new AsyncOperation <bool>();
            IOperationResult <bool> operationResult = OperationResult
                                                      .CreateResult(OperationType.PageNavigation, this, true, DataContext.Empty);
            var exception          = new TestException();
            var continuationAction = new ActionContinuationMock
            {
                Invoke = result =>
                {
                    throw exception;
                }
            };

            var continueWith = operation.ContinueWith(continuationAction);

            continueWith.IsCompleted.ShouldBeFalse();
            operation.SetResult(operationResult);

            continueWith.IsCompleted.ShouldBeTrue();
            continueWith.Result.IsFaulted.ShouldBeTrue();
            continueWith.Result.Exception.ShouldEqual(exception);
        }
        public void ContinueWithActionInterfaceContinuationTest()
        {
            var operation = new AsyncOperation<bool>();
            IOperationResult<bool> operationResult = OperationResult
                .CreateResult(OperationType.PageNavigation, this, true, DataContext.Empty);
            var exception = new TestException();
            var continuationAction = new ActionContinuationMock
            {
                Invoke = result =>
                {
                    throw exception;
                }
            };

            var continueWith = operation.ContinueWith(continuationAction);
            continueWith.IsCompleted.ShouldBeFalse();
            operation.SetResult(operationResult);

            continueWith.IsCompleted.ShouldBeTrue();
            continueWith.Result.IsFaulted.ShouldBeTrue();
            continueWith.Result.Exception.ShouldEqual(exception);
        }