public void WriteThenGetConsumingEnumerable_StopsBlockingWhenCompleteWriting()
        {
            var buffer = new byte[] { 1, 2, 3 };
            using (var stream = new BlockingMemoryStream())
            {
                stream.Write(buffer, 0, buffer.Length);

                var readToListTask = new TaskFactory().StartNew(() => stream.GetConsumingEnumerable().ToList());
                Assert.IsFalse(readToListTask.Wait(millisecondsTimeout: 100));

                stream.CompleteWriting();

                Assert.IsTrue(readToListTask.Wait(millisecondsTimeout: 1000));
                CollectionAssert.AreEqual(buffer, readToListTask.Result);
            }
        }