| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- using System;
 
- using System.Threading.Tasks;
 
- using Xunit.Sdk;
 
- namespace System.Linq
 
- {
 
-     internal static class ValueTaskHelpers
 
-     {
 
-         public static void Wait<T>(this ValueTask<T> task, int timeOut)
 
-         {
 
-             task.AsTask().Wait(timeOut);
 
-         }
 
-     }
 
- }
 
- namespace Xunit
 
- {
 
-     internal static class AssertX
 
-     {
 
-         /// <summary>
 
-         /// Verifies that the exact exception is thrown (and not a derived exception type).
 
-         /// </summary>
 
-         /// <typeparam name="T">The type of the exception expected to be thrown</typeparam>
 
-         /// <param name="testCode">A delegate to the task to be tested</param>
 
-         /// <returns>The exception that was thrown, when successful</returns>
 
-         /// <exception cref="ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
 
-         public static async Task<T> ThrowsAsync<T>(Func<ValueTask> testCode)
 
-             where T : Exception
 
-         {
 
-             return (T)Throws(typeof(T), await RecordExceptionAsync(testCode));
 
-         }
 
-         /// <summary>
 
-         /// Verifies that the exact exception is thrown (and not a derived exception type).
 
-         /// </summary>
 
-         /// <typeparam name="T">The type of the exception expected to be thrown</typeparam>
 
-         /// <param name="testCode">A delegate to the task to be tested</param>
 
-         /// <returns>The exception that was thrown, when successful</returns>
 
-         /// <exception cref="ThrowsException">Thrown when an exception was not thrown, or when an exception of the incorrect type is thrown</exception>
 
-         public static async Task<T> ThrowsAsync<T>(Func<ValueTask<bool>> testCode)
 
-             where T : Exception
 
-         {
 
-             return (T)Throws(typeof(T), await RecordExceptionAsync(testCode));
 
-         }
 
-         /// <summary>
 
-         /// Records any exception which is thrown by the given task.
 
-         /// </summary>
 
-         /// <param name="testCode">The task which may thrown an exception.</param>
 
-         /// <returns>Returns the exception that was thrown by the code; null, otherwise.</returns>
 
-         private static async Task<Exception> RecordExceptionAsync(Func<ValueTask> testCode)
 
-         {
 
-             if (testCode == null)
 
-             {
 
-                 throw new ArgumentNullException(nameof(testCode));
 
-             }
 
-             try
 
-             {
 
-                 await testCode();
 
-                 return null;
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 return ex;
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// Records any exception which is thrown by the given task.
 
-         /// </summary>
 
-         /// <param name="testCode">The task which may thrown an exception.</param>
 
-         /// <returns>Returns the exception that was thrown by the code; null, otherwise.</returns>
 
-         private static async Task<Exception> RecordExceptionAsync<T>(Func<ValueTask<T>> testCode)
 
-         {
 
-             if (testCode == null)
 
-             {
 
-                 throw new ArgumentNullException(nameof(testCode));
 
-             }
 
-             try
 
-             {
 
-                 await testCode();
 
-                 return null;
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 return ex;
 
-             }
 
-         }
 
-         private static Exception Throws(Type exceptionType, Exception exception)
 
-         {
 
-             if (exceptionType == null)
 
-             {
 
-                 throw new ArgumentNullException(nameof(exceptionType));
 
-             }
 
-             if (exception == null)
 
-                 throw new ThrowsException(exceptionType);
 
-             if (!exceptionType.Equals(exception.GetType()))
 
-                 throw new ThrowsException(exceptionType, exception);
 
-             return exception;
 
-         }
 
-     }
 
- }
 
 
  |