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]); }
private static void ProcessCsvRealTime( string fileName, string queryFile, string consoleLogOption, string outputFileName, string blobConnectionString, string blobContainerName, KustoConnectionStringBuilder kscbAdmin, KustoConnectionStringBuilder kscbIngest, bool directIngest, string tableName, bool resetTable) { BlockingKustoUploader ku = null; FileOutput fileOutput = null; ConsoleOutput consoleOutput = null; // initiating simple csv reader SimpleCsvParser simpleCsvParser = new SimpleCsvParser(fileName); // initiating output if (kscbAdmin != null) { // output to kusto ku = CreateUploader(UploadTimespan, blobConnectionString, blobContainerName, kscbAdmin, kscbIngest, directIngest, tableName, resetTable); Task task = Task.Factory.StartNew(() => { RunUploader(ku, simpleCsvParser, queryFile); }); } else if (!string.IsNullOrEmpty(outputFileName)) { // output to file fileOutput = new FileOutput(outputFileName); RunFileOutput(fileOutput, simpleCsvParser, queryFile); } else { // output to console bool tableFormat = consoleLogOption == "table" ? true : false; consoleOutput = new ConsoleOutput(tableFormat); RunConsoleOutput(consoleOutput, simpleCsvParser, queryFile); } // starting simple csv reader simpleCsvParser.Start(); string readline = Console.ReadLine(); // clean up simpleCsvParser.Stop(); if (kscbAdmin != null) { ku.OnCompleted(); } else if (!string.IsNullOrEmpty(outputFileName)) { fileOutput.OnCompleted(); } else { consoleOutput.OnCompleted(); } }
public void GivenCsvStringWithMissingEndingSemicolonWhenParsedThenParseExceptionIsThown() { SimpleCsvParser parser = new SimpleCsvParser(); parser.ParseData("string;missing;\r\n ending; semicolon"); }