private static void TestWrites(string tableContents, string readerContents) { tableContents.ShouldBe(readerContents); using (StringReader reader = new(readerContents)) { IList <string>?values; int rowIndex = 0; int numColumns = TestData.GetLength(1); while ((values = CsvUtility.ReadLine(reader)) != null) { values.Count.ShouldBe(numColumns); for (int columnIndex = 0; columnIndex < numColumns; columnIndex++) { string value = values[columnIndex]; string?testValue = TestData[rowIndex, columnIndex].ToString(); value.ShouldBe(testValue); } rowIndex++; } rowIndex.ShouldBe(TestData.GetLength(0)); } }
public void ReadLineStringTest() { var values = CsvUtility.ReadLine("A, B, C").ToArray(); CollectionAssert.AreEqual(new[] { "A", "B", "C" }, values); values = CsvUtility.ReadLine("A, B, C", false).ToArray(); CollectionAssert.AreEqual(new[] { "A", " B", " C" }, values); }
public void ReadLineReaderTest() { using (StringReader reader = new("A, B, C\r\nD, E, F\r\nG, \"H\r\nh\", \"I\ni\"")) { var values = CsvUtility.ReadLine(reader) !.ToArray(); CollectionAssert.AreEqual(new[] { "A", "B", "C" }, values); values = CsvUtility.ReadLine(reader) !.ToArray(); CollectionAssert.AreEqual(new[] { "D", "E", "F" }, values); values = CsvUtility.ReadLine(reader) !.ToArray(); CollectionAssert.AreEqual(new[] { "G", "H\r\nh", "I\r\ni" }, values); var nullValue = CsvUtility.ReadLine(reader); nullValue.ShouldBeNull(); } }