public void BufferSmallTest() { // 10 rows with 5 fields each containing 100 characters each. // = 5000 characters. const string fieldData = "0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"; var rowData = new[] { fieldData, fieldData, fieldData, fieldData, fieldData }; var csvData = new[] { rowData, rowData, rowData, rowData, rowData, rowData, rowData, rowData, rowData, rowData }; var csvToWrite = WriteCsv(csvData, ';', "tooLong" + NEW_LINE); stringReader = new StringReader(csvToWrite); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(';').RowSeparator("tooLong" + NEW_LINE) .FieldDelimiter('\"').ChunkSize(1).Build(); // ChunkSize should be RowSeparator.length after this constructor call ("tooLong\r\n" = 9 characters). // ReadAllRows calls ReadRow consecutively... var csv = csvReader.ReadAllRows(); Assert.IsNotNull(csv); CheckCsvValues(csv, csvData); // all following read-attempts should return null... var row = csvReader.ReadRow(); Assert.IsNull(row); var rows = csvReader.ReadAllRows(); Assert.IsNull(rows); }
public void SpecifyingEncodingWithATextReaderThrowsException() { Assert.Throws <ArgumentException>(delegate { CsvReader.Builder(new StringReader("A;;A;T;;\r\nGreat")).Encoding(Encoding.UTF8).Build(); }); }
public void ThreeLineFileWithLineBreaksAndEvilDelimitersTest() { stringReader = new StringReader("\"Great\";\"Totally\";\"Cool\"" + NEW_LINE + "\"Gr" + NEW_LINE + "eat\";\"Totally\";Cool" + NEW_LINE + "Great;Totally;Cool"); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(';').RowSeparator(NEW_LINE).FieldDelimiter('\"') .Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "Great", "Totally", "Cool" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "Gr" + NEW_LINE + "eat", "Totally", "Cool" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "Great", "Totally", "Cool" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNull(row); }
public void TwoLinesWithEmptyLastLineAndPreviousFieldDelimiterTest() { stringReader = new StringReader("Great;Totally;"); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(';').RowSeparator(NEW_LINE).FieldDelimiter(null) .Build(); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "Great", "Totally", "" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNull(row); }
public void EmptyFieldsTest() { stringReader = new StringReader("\"test\";test1;A 01;t;;"); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(';').RowSeparator(NEW_LINE).FieldDelimiter('\"') .Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.IsNotNull(row); Assert.AreEqual(new[] { "test", "test1", "A 01", "t", "", "" }, row); }
public void BreaksBetweenDelimitersTest() { stringReader = new StringReader("test;\"test\r\nnewlineTest\";test2\r\ntest4;test5;test6"); csvReader = CsvReader.Builder(stringReader).Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "test", "test\r\nnewlineTest", "test2" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "test4", "test5", "test6" }.ToList(), row); }
public void ReadRowTest() { stringReader = new StringReader("test;test1;test2\r\ntest4;test5;test6"); csvReader = CsvReader.Builder(stringReader).Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "test", "test1", "test2" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "test4", "test5", "test6" }.ToList(), row); }
public void SpecialCharactersTest() { stringReader = new StringReader("����;\"!\"\"�$%&/()=?\"\r\n\"_:;'*\";<>.-,,#+"); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(';').RowSeparator("\r\n").FieldDelimiter('\"') .Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "����", "!\"�$%&/()=?" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "_:;'*", "<>.-,,#+" }.ToList(), row); }
public void QuoteSpecialTest() { stringReader = new StringReader("9008390101544,öäü,\"Normal\" Test a string.,,"); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(',').RowSeparator(NEW_LINE).FieldDelimiter(null) .Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "9008390101544", "öäü", "\"Normal\" Test a string.", "", "" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNull(row); }
public void EscapedFieldDelimitersTest() { stringReader = new StringReader("\"A\",01,\"A\"\" \"\"01\",\"t\"\"\",,\"\""); csvReader = CsvReader.Builder(stringReader).ColumnSeparator(',').RowSeparator(NEW_LINE).FieldDelimiter('\"') .Build(); Assert.IsNotNull(csvReader); var row = csvReader.ReadRow(); Assert.IsNotNull(row); Assert.AreEqual(new[] { "A", "01", "A\" \"01", "t\"", "", "" }.ToList(), row); row = csvReader.ReadRow(); Assert.IsNull(row); }
public void ReadAllRowsTest() { stringReader = new StringReader("test;test1;test5\r\n\"test2\";test3\r\ntest6;;\"test8\""); csvReader = CsvReader.Builder(stringReader).Build(); Assert.IsNotNull(csvReader); var data = csvReader.ReadAllRows(); Assert.IsNotNull(data); var d = new List <List <string> > { new[] { "test", "test1", "test5" }.ToList(), new[] { "test2", "test3" }.ToList(), new[] { "test6", "", "test8" }.ToList() }; Assert.AreEqual(d, data); }