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); } }
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); }