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]);
        }
Exemple #7
0
        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");
        }