コード例 #1
0
        public void EnumeratesLines()
        {
            var lines   = Enumerable.Range(0, 10).Select(i => $"line {i}").ToArray();
            var content = string.Join(Environment.NewLine, lines);

            using (var streamReader = new StreamReader(new MemoryStream(Encoding.Default.GetBytes(content))))
            {
                var enumerable  = new StreamReaderEnumerable(streamReader);
                var actualLines = enumerable.ToList();
                CollectionAssert.AreEqual(lines, actualLines);
            }
        }
コード例 #2
0
        public void DisposesWhenEnumerationIsCompleted()
        {
            var disposable   = new TestDisposable();
            var memoryStream = new TestMemoryStream(Encoding.Default.GetBytes("line1\r\nline2\r\nline3"));
            var streamReader = new TestStreamReader(memoryStream);
            var enumerable   = new StreamReaderEnumerable(streamReader, disposable);

            // complete enumeration
            var lines = enumerable.ToList();

            Assert.IsTrue(streamReader.DisposeCalled);
            Assert.IsTrue(streamReader.DisposeCalledDisposingValue);

            Assert.IsTrue(memoryStream.DisposeCalled);
            Assert.IsTrue(memoryStream.DisposeCalledDisposingValue);

            Assert.IsTrue(disposable.DisposeCalled);
        }