public async Task AsyncStreamWriterBasicTests(string input, string[] expects)
        {
            var size = 4;
            var encoding = Console.OutputEncoding;
            var actual = new List<string>();
            Action<string> onWrite = data => actual.Add(data);

            // Test
            using (var writer = new AsyncStreamWriter(onWrite, encoding))
            {
                var bytes = encoding.GetBytes(input);
                for (int i = 0; i < bytes.Length; i += size)
                {
                    await writer.WriteAsync(bytes, i, Math.Min(size, bytes.Length - i), default(CancellationToken));
                }
            }

            // Assert
            Assert.Equal(expects, actual);
        }