Пример #1
0
        public async void Unbounded_No_Consumers()
        {
            var push = new ReplayAsyncEnumerable <int>();

            for (var i = 1; i <= 5; i++)
            {
                await push.Next(i);
            }
            await push.Complete();

            await push.AssertResult(1, 2, 3, 4, 5);

            await push.AssertResult(1, 2, 3, 4, 5);
        }
        public async void TimedSized_No_Consumers()
        {
            var push = new ReplayAsyncEnumerable <int>(10, TimeSpan.FromHours(1));

            for (var i = 1; i <= 5; i++)
            {
                await push.Next(i);
            }
            await push.Complete();

            await push.AssertResult(1, 2, 3, 4, 5);

            await push.AssertResult(1, 2, 3, 4, 5);
        }
        public async void TimedSized_Bounded_1_Normal()
        {
            var push = new ReplayAsyncEnumerable <int>(1, TimeSpan.FromHours(1));

            await push.Next(1);

            await push.Next(2);

            var t1 = push.AssertResult(2, 3, 4, 5);

            await push.Next(3);

            await push.Next(4);

            await push.Next(5);

            await push.Complete();

            await t1;

            await push.AssertResult(5);
        }
        public async void Sized_Bounded_2_Normal()
        {
            var push = new ReplayAsyncEnumerable <int>(2);

            await push.Next(1);

            await push.Next(2);

            await push.Next(3);

            var t1 = push.AssertResult(2, 3, 4, 5);

            await push.Next(4);

            await push.Next(5);

            await push.Complete();

            await t1;

            await push.AssertResult(4, 5);
        }
        public async void Timed_Bounded_1_Normal()
        {
            var timeNow = new [] { 0L };

            var push = new ReplayAsyncEnumerable <int>(10, TimeSpan.FromMilliseconds(100), () => timeNow[0]);

            await push.Next(1);

            timeNow[0] += 100;

            await push.Next(2);

            var t1 = push.AssertResult(2, 3, 4, 5);

            timeNow[0] += 100;

            await push.Next(3);

            timeNow[0] += 100;

            await push.Next(4);

            timeNow[0] += 100;

            await push.Next(5);

            await push.Complete();

            await t1;

            await push.AssertResult(5);

            timeNow[0] += 100;

            await push.AssertResult();
        }