コード例 #1
0
        public void CommentLineTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, "#", new StringSplitTokenizer(new [] { ';' }, false));
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("#Philipp;Wagner;1986/05/12")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .Where(x => x.IsValid)
                         .ToList();

            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("Max", result[0].Result.FirstName);
            Assert.AreEqual("Mustermann", result[0].Result.LastName);

            Assert.AreEqual(2014, result[0].Result.BirthDate.Year);
            Assert.AreEqual(1, result[0].Result.BirthDate.Month);
            Assert.AreEqual(1, result[0].Result.BirthDate.Day);
        }
コード例 #2
0
        public void SkipHeaderTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("Philipp;Wagner;1986/05/12")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();

            Assert.AreEqual(2, result.Count);

            Assert.IsTrue(result.All(x => x.IsValid));

            Assert.AreEqual("Philipp", result[0].Result.FirstName);
            Assert.AreEqual("Wagner", result[0].Result.LastName);

            Assert.AreEqual(1986, result[0].Result.BirthDate.Year);
            Assert.AreEqual(5, result[0].Result.BirthDate.Month);
            Assert.AreEqual(12, result[0].Result.BirthDate.Day);

            Assert.AreEqual("Max", result[1].Result.FirstName);
            Assert.AreEqual("Mustermann", result[1].Result.LastName);

            Assert.AreEqual(2014, result[1].Result.BirthDate.Year);
            Assert.AreEqual(1, result[1].Result.BirthDate.Month);
            Assert.AreEqual(1, result[1].Result.BirthDate.Day);
        }
コード例 #3
0
        public void TestSkipLastOne()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(skipHeader: true, ';');
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("     Philipp;Wagner;1986/05/12       ")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            var filePath = Path.Combine(basePath, "test_file.txt");

            File.WriteAllText(filePath, stringBuilder.ToString(), Encoding.UTF8);

            var result = csvParser
                         .ReadFromFile(filePath, Encoding.UTF8, skipLast: 1)
                         .ToList();

            Assert.AreEqual(1, result.Count);

            Assert.AreEqual("Philipp", result[0].Result.FirstName);
            Assert.AreEqual("Wagner", result[0].Result.LastName);
        }
コード例 #4
0
        public void TinyCsvTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);
            var result = csvParser
                         .ReadFromFile(@"persons.csv", Encoding.ASCII)
                         .ToList();

            Assert.AreEqual(2, result.Count);

            Assert.IsTrue(result.All(x => x.IsValid));

            Assert.AreEqual("Philipp", result[0].Result.FirstName);
            Assert.AreEqual("Wagner", result[0].Result.LastName);
            Assert.AreEqual(1986, result[0].Result.BirthDate.Year);
            Assert.AreEqual(5, result[0].Result.BirthDate.Month);
            Assert.AreEqual(12, result[0].Result.BirthDate.Day);

            Assert.AreEqual("Max", result[1].Result.FirstName);
            Assert.AreEqual("Mustermann", result[1].Result.LastName);

            Assert.AreEqual(2014, result[1].Result.BirthDate.Year);
            Assert.AreEqual(1, result[1].Result.BirthDate.Month);
            Assert.AreEqual(1, result[1].Result.BirthDate.Day);
        }
コード例 #5
0
        public void QuotedStringTokenizerExampleTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, string.Empty, new QuotedStringTokenizer(','));
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstNameLastName;BirthDate")
                                .AppendLine("\"Philipp,Wagner\",1986/05/12")
                                .AppendLine("\"Max,Mustermann\",2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();

            // Make sure we got 2 results:
            Assert.AreEqual(2, result.Count);

            // And all of them have been parsed correctly:
            Assert.IsTrue(result.All(x => x.IsValid));

            // Now check the values:
            Assert.AreEqual("Philipp,Wagner", result[0].Result.FirstNameWithLastName);

            Assert.AreEqual(1986, result[0].Result.BirthDate.Year);
            Assert.AreEqual(5, result[0].Result.BirthDate.Month);
            Assert.AreEqual(12, result[0].Result.BirthDate.Day);

            Assert.AreEqual("Max,Mustermann", result[1].Result.FirstNameWithLastName);

            Assert.AreEqual(2014, result[1].Result.BirthDate.Year);
            Assert.AreEqual(1, result[1].Result.BirthDate.Month);
            Assert.AreEqual(1, result[1].Result.BirthDate.Day);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: fmoghaddampoor/Reply
        private static DataTable GetCSVData()
        {
            CsvParserOptions    csvParserOptions = new CsvParserOptions(false, ',');
            CsvPersonMapping    csvMapper        = new CsvPersonMapping();
            CsvParser <Account> csvParser        = new CsvParser <Account>(csvParserOptions, csvMapper);

            var csvResult = csvParser
                            .ReadFromFile(GetFilePath(), Encoding.UTF8)
                            .ToList();

            DataTable dt = null;

            if (csvResult.Count > 0)
            {
                dt = new DataTable();
                dt.Columns.Add("Name");
                dt.Columns.Add("PrimaryContactId");
                dt.Columns.Add("Telephone1");
                for (int locIndexLine = 0; locIndexLine < csvResult.Count; locIndexLine++)
                {
                    dt.Rows.Add();
                    dt.Rows[locIndexLine]["Name"]             = csvResult[locIndexLine].Result.Name;
                    dt.Rows[locIndexLine]["PrimaryContactId"] = csvResult[locIndexLine].Result.PrimaryContactId;
                    dt.Rows[locIndexLine]["Telephone1"]       = csvResult[locIndexLine].Result.Telephone1;
                }
            }
            return(dt);
        }
コード例 #7
0
        public void ReadFromFile_null_Test()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' }, 1, true);
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            Assert.Throws <ArgumentNullException>(() => csvParser.ReadFromFile(null, Encoding.UTF8));
        }
コード例 #8
0
        public void ToStringTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            // Make sure the ToString() doesn't throw...
            Assert.DoesNotThrow(() => csvParser.ToString());

            // TODO Check ToString Output
        }
コード例 #9
0
        public void NullInputTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            Assert.Throws <ArgumentNullException>(() =>
            {
                var result = csvParser.Parse(null);
            });
        }
コード例 #10
0
        public static List <FinraRecord> ParseResponse(string finraResponse)
        {
            CsvParserOptions        csvParserOptions = new CsvParserOptions(true, '|');
            CsvPersonMapping        mapping          = new CsvPersonMapping();
            CsvParser <FinraRecord> csvParser        = new CsvParser <FinraRecord>(csvParserOptions, mapping);

            CsvReaderOptions csvReaderOptions = new CsvReaderOptions(new string[] { "\r\n" });
            var result = csvParser.ReadFromFinraString(csvReaderOptions, finraResponse, 2);

            var a = result.ToList();

            return(result.Select(r => r.Result).ToList());
        }
コード例 #11
0
        public void EmptyDataTest()
        {
            CsvParserOptions csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            CsvReaderOptions csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });

            CsvPersonMapping   csvMapper = new CsvPersonMapping();
            CsvParser <Person> csvParser = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();

            Assert.AreEqual(0, result.Count);
        }
コード例 #12
0
        public void Parse_File()
        {
            TinyCsvParser.CsvParserOptions csvParserOptions = new TinyCsvParser.CsvParserOptions(true, ';');
            TinyCsvParser.CsvReaderOptions csvReaderOptions = new TinyCsvParser.CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping csvMapper = new CsvPersonMapping();

            TinyCsvParser.CsvParser <Person> csvParser = new TinyCsvParser.CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new System.Text.StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("Philipp;Wagner;1986/05/12")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();
        }
コード例 #13
0
        public void ReadFromStreamTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, ';', 1, true);
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("     Philipp;Wagner;1986/05/12       ")
                                .AppendLine("Max;Mustermann;2014/01/01");

#if NETCOREAPP1_1
            var basePath = AppContext.BaseDirectory;
#else
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
#endif
            var filePath = Path.Combine(basePath, "test_file.txt");

            File.WriteAllText(filePath, stringBuilder.ToString(), Encoding.UTF8);

            using (var stream = File.OpenRead(filePath))
            {
                var result = csvParser
                             .ReadFromStream(stream, Encoding.UTF8)
                             .ToList();

                Assert.AreEqual(2, result.Count);

                Assert.IsTrue(result.All(x => x.IsValid));

                Assert.AreEqual("Philipp", result[0].Result.FirstName);
                Assert.AreEqual("Wagner", result[0].Result.LastName);

                Assert.AreEqual(1986, result[0].Result.BirthDate.Year);
                Assert.AreEqual(5, result[0].Result.BirthDate.Month);
                Assert.AreEqual(12, result[0].Result.BirthDate.Day);

                Assert.AreEqual("Max", result[1].Result.FirstName);
                Assert.AreEqual("Mustermann", result[1].Result.LastName);
                Assert.AreEqual(2014, result[1].Result.BirthDate.Year);
                Assert.AreEqual(1, result[1].Result.BirthDate.Month);
                Assert.AreEqual(1, result[1].Result.BirthDate.Day);
            }
        }
コード例 #14
0
        public void PersonMappingTest()
        {
            CsvParserOptions   csvParserOptions = new CsvParserOptions(true, ';');
            CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            CsvPersonMapping   csvMapper        = new CsvPersonMapping();
            CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("Philipp;Wagner;1986/05/12")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();

            Assert.AreEqual(2, result.Count);

            Assert.IsTrue(result.All(x => x.IsValid));

            // Asserts ...
        }
コード例 #15
0
        public void DegreeOfParallelismTest()
        {
            int csvDataLines = 1000000;

            int[] degreeOfParallelismList = new[] { 1, 2, 4 };

            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < csvDataLines; i++)
            {
                stringBuilder.AppendLine("Philipp;Wagner;1986/05/12");
            }
            var csvData = stringBuilder.ToString();

            foreach (var degreeOfParallelism in degreeOfParallelismList)
            {
                CsvParserOptions   csvParserOptions = new CsvParserOptions(true, new[] { ';' }, degreeOfParallelism, true);
                CsvReaderOptions   csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
                CsvPersonMapping   csvMapper        = new CsvPersonMapping();
                CsvParser <Person> csvParser        = new CsvParser <Person>(csvParserOptions, csvMapper);

                MeasurementUtils.MeasureElapsedTime(string.Format("DegreeOfParallelismTest (DegreeOfParallelism = {0})", degreeOfParallelism), () => csvParser.ReadFromString(csvReaderOptions, csvData).ToList());
            }
        }
コード例 #16
0
        public void CsvParserWithLineCountingTest()
        {
            var csvParserOptions = new CsvParserOptions(true, new[] { ';' });
            var csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
            var csvMapper        = new CsvPersonMapping();
            var csvParser        = new LineCountingCsvParser <Person>(csvParserOptions, csvMapper);

            var stringBuilder = new StringBuilder()
                                .AppendLine("FirstName;LastName;BirthDate")
                                .AppendLine("Philipp;Wagner;1986/05/12")
                                .AppendLine("")
                                .AppendLine("Max;Mustermann;2014/01/01");

            var result = csvParser
                         .ReadFromString(csvReaderOptions, stringBuilder.ToString())
                         .ToList();

            Assert.AreEqual(2, result.Count);

            Assert.AreEqual(1, result[0].Position);
            Assert.AreEqual(3, result[1].Position);

            // Asserts ...
        }