public static void Main(string[] args) { Parser parser = new Parser(); List<List<string>> result; // single line result = parser.Parse("a,b,c"); Debug.Assert(result.Count == 1); Debug.Assert(result[0].Count == 3); Debug.Assert(result[0][0] == "a"); Debug.Assert(result[0][1] == "b"); Debug.Assert(result[0][2] == "c"); // multiple lines result = parser.Parse("a,b,c\r\n" + "e,f"); Debug.Assert(result.Count == 2); Debug.Assert(result[0].Count == 3); Debug.Assert(result[1][0] == "e"); Debug.Assert(result[1][1] == "f"); // double quoted value result = parser.Parse("\"a,b\",c\r\n" + "e,f"); Debug.Assert(result.Count == 2); Debug.Assert(result[0].Count == 2); Debug.Assert(result[0][0] == "a,b"); // double quoted value with return code result = parser.Parse("\"a\r\n" + "b\",c\r\n" + "e,f"); Debug.Assert(result.Count == 2); Debug.Assert(result[0].Count == 2); Debug.Assert(result[0][0] == "a\nb"); }
public void TestParseWithSkipWord2() { // Arrange const string Csv = "Header,Arrange,,\"Assertion\"\r\n" + "SKIP,Data1,Data2,\r\n"; var parser = new Parser(); parser.SkipKeyWords.Add("SKIP2"); // Act var result = parser.Parse(Csv); // Assert Assert.AreEqual(2, result.Count()); // row[0] var row0 = result.ElementAt(0); Assert.AreEqual("Header", row0[0]); Assert.AreEqual("Arrange", row0[1]); Assert.AreEqual(null, row0[2]); Assert.AreEqual("Assertion", row0[3]); Assert.AreEqual(null, row0[2]); }
public void TestParseWithMinColumnCount() { // Arrange const string Csv = "Header,Arrange,,Assertion,\r\n" + ",Data1,Data2,\r\n"; // Act var parser = new Parser(); parser.MinColumnCount = 10; var result = parser.Parse(Csv); // Assert Assert.AreEqual(2, result.Count()); // row[0] var row0 = result.ElementAt(0); Assert.AreEqual(10, row0.Count()); Assert.AreEqual("Header", row0[0]); Assert.AreEqual("Arrange", row0[1]); Assert.AreEqual(null, row0[2]); // row[1] var row1 = result.ElementAt(1); Assert.AreEqual(10, row1.Count()); Assert.AreEqual(null, row1[0]); Assert.AreEqual("Data1", row1[1]); Assert.AreEqual(null, row1[3]); }
public void TestParseWithSkipEmptyRow() { // Arrange const string Csv = "Header,Arrange,,\"Assertion\"\r\n" + "\r\n" + ",Data1,\"Data2\","; var parser = new Parser(); parser.SkipEmptyRow = true; // Act var result = parser.Parse(Csv); // Assert Assert.AreEqual(2, result.Count()); // row[0] var row0 = result.ElementAt(0); Assert.AreEqual("Header", row0[0]); Assert.AreEqual("Arrange", row0[1]); Assert.AreEqual(null, row0[2]); Assert.AreEqual("Assertion", row0[3]); Assert.AreEqual(null, row0[2]); }
public void TestParseWithDoubleQuoteEnd() { // Arrange const string Csv = "Header,Arrange,,Assertion,\r\n" + ",Data1,Data2\""; // Act var parser = new Parser(); var result = parser.Parse(Csv); // Assert Assert.AreEqual(2, result.Count()); // row[0] var row0 = result.ElementAt(0); Assert.AreEqual(5, row0.Count()); Assert.AreEqual("Header", row0[0]); Assert.AreEqual("Arrange", row0[1]); Assert.AreEqual(null, row0[2]); // row[1] var row1 = result.ElementAt(1); Assert.AreEqual(3, row1.Count()); Assert.AreEqual(null, row1[0]); Assert.AreEqual("Data1", row1[1]); Assert.AreEqual("Data2", row1[2]); }