public void GivenCsvStringWithBlanksOnlyWhenParsedThenEmptyListIsReturned() { SimpleCsvParser parser = new SimpleCsvParser(); var result = parser.ParseData(" "); Assert.AreEqual(0, result.Count); }
public void GivenASimpleCsvStringWhenParsedThenWordsAreReturnedSeparated() { SimpleCsvParser parser = new SimpleCsvParser(); var result = parser.ParseData("This;;is;a;simple;string,;\r\nused;for;testing;;;purposes.;\r\nHave;a;nice;day;today;.;"); Assert.AreEqual(3, result.Count); Assert.AreEqual(6, result[0].Count); Assert.AreEqual(6, result[1].Count); Assert.AreEqual(6, result[2].Count); Assert.AreEqual("This", result[0][0]); Assert.AreEqual("", result[0][1]); Assert.AreEqual("is", result[0][2]); Assert.AreEqual("a", result[0][3]); Assert.AreEqual("simple", result[0][4]); Assert.AreEqual("string,", result[0][5]); Assert.AreEqual("used", result[1][0]); Assert.AreEqual("for", result[1][1]); Assert.AreEqual("testing", result[1][2]); Assert.AreEqual("", result[1][3]); Assert.AreEqual("", result[1][4]); Assert.AreEqual("purposes.", result[1][5]); Assert.AreEqual("Have", result[2][0]); Assert.AreEqual("a", result[2][1]); Assert.AreEqual("nice", result[2][2]); Assert.AreEqual("day", result[2][3]); Assert.AreEqual("today", result[2][4]); Assert.AreEqual(".", result[2][5]); }
public void GivenCsvStringWithSingleSemicolonWhenParsedThenOnlyEmptyStringIsReturned() { SimpleCsvParser parser = new SimpleCsvParser(); var result = parser.ParseData(";"); Assert.AreEqual(1, result.Count); Assert.AreEqual(1, result[0].Count); Assert.AreEqual("", result[0][0]); }
public void GivenCsvStringWithMultipleSemicolonsWhenParsedThenEqualAmountOfEmptyStringsIsReturned() { SimpleCsvParser parser = new SimpleCsvParser(); var result = parser.ParseData(";;;\r\n;"); Assert.AreEqual(2, result.Count); Assert.AreEqual(3, result[0].Count); Assert.AreEqual(1, result[1].Count); Assert.AreEqual("", result[0][0]); Assert.AreEqual("", result[0][1]); Assert.AreEqual("", result[0][2]); Assert.AreEqual("", result[1][0]); }
public void GivenCsvStringWithSemicolonBetweenQuotationMarksWhenParsedThenStringIsSplitCorrectly() { SimpleCsvParser parser = new SimpleCsvParser(); var str = @"""Hello World;"";said;the;computer;"; var result = parser.ParseData(str); Assert.AreEqual(1, result.Count); var line = result[0]; Assert.AreEqual(4, line.Count); Assert.AreEqual("Hello World;", line[0]); Assert.AreEqual("said", line[1]); Assert.AreEqual("the", line[2]); Assert.AreEqual("computer", line[3]); }
public void GivenCsvStringWithQuotationMarksBetweenQuotationMarksWhenParsedThenStringIsSplitCorrectly() { SimpleCsvParser parser = new SimpleCsvParser(); var str = @" Hello;I'm ;""called """"fred""""""; or ;""""""freddy"""""";"; var result = parser.ParseData(str); Assert.AreEqual(1, result.Count); var line = result[0]; Assert.AreEqual(5, line.Count); Assert.AreEqual(" Hello", line[0]); Assert.AreEqual("I'm ", line[1]); Assert.AreEqual(@"called ""fred""", line[2]); Assert.AreEqual(" or ", line[3]); Assert.AreEqual(@"""freddy""", line[4]); }
public void GivenCsvStringWithMissingEndingSemicolonWhenParsedThenParseExceptionIsThown() { SimpleCsvParser parser = new SimpleCsvParser(); parser.ParseData("string;missing;\r\n ending; semicolon"); }