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); }
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); }
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); }
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); }
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); }
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); }
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)); }
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 }
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); }); }
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()); }
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); }
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(); }
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); } }
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 ... }
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()); } }
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 ... }