#region Copyright & License Information /* * Copyright 2007-2022 The OpenRA Developers (see AUTHORS) * This file is part of OpenRA, which is free software. It is made * available to you under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. For more * information, see COPYING. */ #endregion using System.IO; using System.Linq; using System.Text; using NUnit.Framework; namespace OpenRA.Test { [TestFixture] class StreamExtsTests { [TestCase(TestName = "ReadAllLines is equivalent to ReadAllLinesAsMemory")] public void ReadAllLines() { foreach (var source in new[] { "abc", "abc\n", "abc\r\n", "abc\ndef", "abc\r\ndef", "abc\n\n\n", "abc\r\n\r\n\r\n", "abc\n\n\ndef", "abc\r\n\r\n\r\ndef", "abc\ndef\nghi\n", "abc\r\ndef\r\nghi\r\n", "abc\ndef\nghi\njkl", "abc\r\ndef\r\nghi\r\njkl", new string('a', 126), new string('a', 126) + '\n', new string('a', 126) + "\r\n", new string('a', 126) + "b", new string('a', 126) + "\nb", new string('a', 126) + "\r\nb", new string('a', 127), new string('a', 127) + '\n', new string('a', 127) + "\r\n", new string('a', 127) + "b", new string('a', 127) + "\nb", new string('a', 127) + "\r\nb", new string('a', 128), new string('a', 128) + '\n', new string('a', 128) + "\r\n", new string('a', 128) + "b", new string('a', 128) + "\nb", new string('a', 128) + "\r\nb", new string('a', 129), new string('a', 129) + '\n', new string('a', 129) + "\r\n", new string('a', 129) + "b", new string('a', 129) + "\nb", new string('a', 129) + "\r\nb", }) { var bytes = Encoding.UTF8.GetBytes(source); var lines = new MemoryStream(bytes).ReadAllLines().ToArray(); var linesAsMemory = new MemoryStream(bytes).ReadAllLinesAsMemory().Select(l => l.ToString()).ToArray(); Assert.That(linesAsMemory, Is.EquivalentTo(lines)); } } } }