public void IAsyncOperation_AsTask_StartStatus() { var operation = new MockAsyncOperation<bool>(); Task<bool> t = operation.AsTask(); Assert.AreEqual (TaskStatus.WaitingForActivation, t.Status); Assert.AreEqual (AsyncStatus.Started, operation.Status); }
public void IAsyncOperation_AsTask_Error() { var error = new Exception("error"); var operation = new MockAsyncOperation<bool>(); Task<bool> t = operation.AsTask(); operation.ErrorCode = error; operation.Status = AsyncStatus.Error; operation.Completed (operation, operation.Status); Assert.IsTrue (t.IsFaulted); Assert.AreSame (error, t.Exception.InnerExceptions.First()); Assert.Throws<AggregateException>(t.Wait); }
public void IAsyncOperation_AsTask_Canceled() { var action = new MockAsyncOperation<bool>(); Task<bool> t = action.AsTask(); action.Cancel(); Assert.Throws<AggregateException>(t.Wait); Assert.AreEqual (TaskStatus.Canceled, t.Status); }
public void IAsyncOperation_AsTask_Completed() { var operation = new MockAsyncOperation<bool>(); Task<bool> t = operation.AsTask(); operation.Result = true; operation.Status = AsyncStatus.Completed; operation.Completed (operation, operation.Status); Assert.AreEqual (TaskStatus.RanToCompletion, t.Status); Assert.AreEqual (true, t.Result); }
public void IAsyncOperation_StartAsTask_CreatedOnly() { var operation = new MockAsyncOperation<bool>(); operation.Status = AsyncStatus.Error; Assert.Throws<InvalidOperationException>(() => operation.StartAsTask()); operation.Status = AsyncStatus.Started; Assert.Throws<InvalidOperationException>(() => operation.StartAsTask()); operation.Status = AsyncStatus.Completed; Assert.Throws<InvalidOperationException>(() => operation.StartAsTask()); operation.Status = AsyncStatus.Canceled; Assert.Throws<InvalidOperationException>(() => operation.StartAsTask()); }