public async void Normal_2_Consumers() { var push = new MulticastAsyncEnumerable <int>(); var en1 = push.GetAsyncEnumerator(); var task1 = Task.Run(async() => { await en1.AssertResult(1, 2, 3, 4, 5); }); var en2 = push.GetAsyncEnumerator(); var task2 = Task.Run(async() => { await en2.AssertResult(1, 2, 3, 4, 5); }); for (var i = 1; i <= 5; i++) { await push.Next(i); } await push.Complete(); await task1; await task2; }
public async void Error_2_Consumers() { var push = new MulticastAsyncEnumerable <int>(); var en1 = push.GetAsyncEnumerator(); var en2 = push.GetAsyncEnumerator(); var task1 = Task.Run(async() => { await en1.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5); }); var task2 = Task.Run(async() => { await en2.AssertFailure(typeof(InvalidOperationException), 1, 2, 3, 4, 5); }); for (var i = 1; i <= 5; i++) { await push.Next(i); } await push.Error(new InvalidOperationException()); await task1; await task2; }
public async void HasConsumers() { var push = new MulticastAsyncEnumerable <int>(); Assert.False(push.HasConsumers); var en = push.GetAsyncEnumerator(); Assert.True(push.HasConsumers); await en.DisposeAsync(); Assert.False(push.HasConsumers); }