public void TryCompleteFromEventArgs_PropagatesException()
 {
     AsyncContext.Run(async () =>
     {
         var tcs = new TaskCompletionSource();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(new NotImplementedException(), false, null));
         await AssertEx.ThrowsExceptionAsync<NotImplementedException>(() => tcs.Task);
     });
 }
 public void TryCompleteFromEventArgs_PropagatesCancellation()
 {
     AsyncContext.Run(async () =>
     {
         var tcs = new TaskCompletionSource();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(null, true, null));
         await AssertEx.ThrowsExceptionAsync<OperationCanceledException>(() => tcs.Task);
     });
 }
 public void TryCompleteFromEventArgs_PropagatesResult()
 {
     AsyncContext.Run(async () =>
     {
         var tcs = new TaskCompletionSource();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(null, false, null));
         await tcs.Task;
     });
 }
 public void TryCompleteFromEventArgsTResult_PropagatesResult()
 {
     AsyncContext.Run(async () =>
     {
         var tcs = new TaskCompletionSource<int>();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(null, false, null), () => 13);
         var result = await tcs.Task;
         Assert.AreEqual(13, result);
     });
 }
 public void TryCompleteFromEventArgsTResult_PropagatesException()
 {
     Test.Async(async () =>
     {
         var tcs = new TaskCompletionSource<int>();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(new NotImplementedException(), false, null), null);
         await AssertEx.ThrowsExceptionAsync<NotImplementedException>(() => tcs.Task);
     });
 }
 public void TryCompleteFromEventArgsTResult_PropagatesCancellation()
 {
     Test.Async(async () =>
     {
         var tcs = new TaskCompletionSource<int>();
         tcs.TryCompleteFromEventArgs(new AsyncCompletedEventArgs(null, true, null), null);
         await AssertEx.ThrowsExceptionAsync<OperationCanceledException>(() => tcs.Task);
     });
 }