public async void Unbounded_2_Consumers() { var push = new ReplayAsyncEnumerable <int>(); var en1 = push.GetAsyncEnumerator(); var en2 = push.GetAsyncEnumerator(); var task1 = Task.Run(async() => { await en1.AssertResult(1, 2, 3, 4, 5); }); 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 TimedSized_2_Consumers_Error() { var push = new ReplayAsyncEnumerable <int>(10, TimeSpan.FromHours(1)); 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 ReplayAsyncEnumerable <int>(); Assert.False(push.HasConsumers); var en = push.GetAsyncEnumerator(); Assert.True(push.HasConsumers); await en.DisposeAsync(); Assert.False(push.HasConsumers); }
public async void Unbounded_One_Consumer_Error() { var push = new ReplayAsyncEnumerable <int>(); var en1 = push.GetAsyncEnumerator(); var task1 = Task.Run(async() => { await en1.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; }
public async void TimedSized_One_Consumer() { var push = new ReplayAsyncEnumerable <int>(10, TimeSpan.FromHours(1)); var en1 = push.GetAsyncEnumerator(); var task1 = Task.Run(async() => { await en1.AssertResult(1, 2, 3, 4, 5); }); for (var i = 1; i <= 5; i++) { await push.Next(i); } await push.Complete(); await task1; }