public void ConfigureAwait_GetAsyncEnumerator_CancellationTokenPassedthrough() { var enumerable = new TrackFlagsAsyncEnumerable() { Flags = 0 }; var cts = new CancellationTokenSource(); ConfiguredAsyncEnumerable <int> .Enumerator enumerator = enumerable.ConfigureAwait(false).GetAsyncEnumerator(cts.Token); Assert.Equal(cts.Token, enumerable.CancellationToken); }
public void ConfigureAwait_AwaitDisposeAsync_FlagsSetAppropriately(bool continueOnCapturedContext) { var enumerable = new TrackFlagsAsyncEnumerable() { Flags = 0 }; ConfiguredAsyncEnumerable <int> .Enumerator enumerator = enumerable.ConfigureAwait(continueOnCapturedContext).GetAsyncEnumerator(); ConfiguredValueTaskAwaitable.ConfiguredValueTaskAwaiter disposeAwaiter = enumerator.DisposeAsync().GetAwaiter(); disposeAwaiter.UnsafeOnCompleted(() => { }); Assert.Equal( continueOnCapturedContext ? ValueTaskSourceOnCompletedFlags.UseSchedulingContext : ValueTaskSourceOnCompletedFlags.None, enumerable.Flags); }