public void CsvObject_WithCsvTextWithSingleEscapeCharInLastPosition_ShouldThrow() { const string CsvText = "Name,Year,Description\nSmith\\, John,2015,No desription here\\"; var csv = new CsvTableReader(); var result = csv.ReadToTable(CsvText); Assert.Fail(); }
public void CsvObject_ShouldDeserializeCsvTextWithEscapedRange() { const string CsvText = "Name,Year,Description\n\"Smith, \\\"John\\\"\",2015,\"No\n desription\" here"; var csv = new CsvTableReader(); var result = csv.ReadToTable(CsvText); Assert.AreEqual(2, result.Length, "Invalid number of rows."); Assert.AreEqual(3, result[0].Length, "Invalid number of columns in first row."); Assert.AreEqual(3, result[1].Length, "Invalid number of columns in second row."); Assert.AreEqual("Name", result[0][0], "[0][0]"); Assert.AreEqual("Year", result[0][1], "[0][1]"); Assert.AreEqual("Description", result[0][2], "[0][2]"); Assert.AreEqual("Smith, \"John\"", result[1][0], "[1][0]"); Assert.AreEqual("2015", result[1][1], "[1][1]"); Assert.AreEqual("No\n desription here", result[1][2], "[1][2]"); }
public void CsvObject_ShouldDeserializeCsvTextWithSingleEscapeCharInValidPosition() { const string CsvText = "Name,Year,Description\nSmith\\, John,2015,No desription here"; var csv = new CsvTableReader(); var result = csv.ReadToTable(CsvText); Assert.AreEqual(2, result.Length, "Invalid number of rows."); Assert.AreEqual(3, result[0].Length, "Invalid number of columns in first row."); Assert.AreEqual(3, result[1].Length, "Invalid number of columns in second row."); Assert.AreEqual("Name", result[0][0], "[0][0]"); Assert.AreEqual("Year", result[0][1], "[0][1]"); Assert.AreEqual("Description", result[0][2], "[0][2]"); Assert.AreEqual("Smith, John", result[1][0], "[1][0]"); Assert.AreEqual("2015", result[1][1], "[1][1]"); Assert.AreEqual("No desription here", result[1][2], "[1][2]"); }
public void CsvMapper_MapOneRowCsvToObject_Generic_ShouldWork() { const string CsvText = "Name,Year,Description\nJohn Smith,2015,No desription here"; var csv = new CsvTableReader(); var csvRow = csv.ReadToTable(CsvText).Skip(1).ToArray()[0]; var mapping = new ColumnIndexToPropertyNameMapping { Mapping = new Dictionary <string, int> { { "Name", 0 }, { "Year", 1 }, { "Description", 2 } } }; var result = csvRow.MapToObjectProperties <NameYearDescriptionSampleObject>(mapping); Assert.AreEqual("John Smith", result.Name, "Name should match."); Assert.AreEqual(2015, result.Year, "Year should match."); Assert.AreEqual("No desription here", result.Description, "Description should match."); }