コード例 #1
0
        public async Task AsObservable_DataWritten(bool endWithError)
        {
            IChannel <int>  c = CreateChannel();
            IObserver <int> o = c.AsObserver();

            Task reader = Task.Run(async() =>
            {
                int received             = 0;
                IAsyncEnumerator <int> e = c.GetAsyncEnumerator();
                while (await e.MoveNextAsync())
                {
                    Assert.Equal(received++, e.Current);
                }
            });

            for (int i = 0; i < 10; i++)
            {
                o.OnNext(i);
            }

            if (endWithError)
            {
                o.OnError(new FormatException());
                await Assert.ThrowsAsync <FormatException>(() => reader);
            }
            else
            {
                o.OnCompleted();
                await reader;
            }
        }