예제 #1
0
        private async Task StreamingTestTask(ClusterConnection connection)
        {
            int responsesCount = 10;

            ChannelReader <(StreamingResponse?, RequestResult)> channel =
                connection.OpenChannelAsync <StreamingRequest, StreamingResponse>(
                    new StreamingRequest {
                Count = responsesCount
            }
                    );

            for (int i = responsesCount; i >= 0; --i)
            {
                (StreamingResponse? response, RequestResult result) =
                    await channel.ReadAsync();

                Assert.Equal(RequestResult.OK, result);
                Assert.Equal(i, response?.Value ?? -1);
            }

            await Assert.ThrowsAsync <ChannelClosedException>(async() => {
                await channel.ReadAsync();
            });
        }