예제 #1
0
        public void AbortInCallbackNotRespected()
        {
            var token  = new AsyncToken <TestResult>();
            var called = false;

            token
            .OnSuccess(_ => token.Abort())
            .OnSuccess(_ => called = true)
            .OnFinally(_ => called = true);
            token.Succeed(new TestResult());

            Assert.IsTrue(called);
        }
예제 #2
0
        public async Task TaskAborted()
        {
            var token = new AsyncToken <float>();

            Exception callbackException = null;

            token.OnFailure(exception => callbackException = exception);

            var task        = token.AsTask();
            var taskSuccess = false;

            token.Abort();

            try
            {
                await task;
                taskSuccess = true;
            }
            catch (Exception exception)
            {
                Assert.IsTrue(exception is OperationCanceledException);
            }
            Assert.IsFalse(taskSuccess);
        }