public void CsvReadTest3() { var s = "'a''b',,'c'\n'd','e\ne',f"; var context = new SourceFileContext(); var stream = GetStreamFromString(s); context.Stream = new StreamReader(stream); context.FileConfiguration = new File { Delimiter = ",", Qualifier = "'", Name = "Test" }; var log = new ConsoleLogger(); var reader = context.BufferedRead(log).CsvReader(context, log); Assert.IsNotNull(reader); var row = reader(); Assert.IsNotNull(row); Assert.AreEqual("a'b", row.Fields[0].ToString()); Assert.IsTrue(row.Fields[1].Source == null); Assert.AreEqual("c", row.Fields[2].ToString()); }
public void DataParserTest() { var s = "'a',1,'c',2,'2017-10-01 14:15:16'\n'a1',1.1,c1,3,'2017-10-04"; var context = new SourceFileContext(); var stream = GetStreamFromString(s); context.Stream = new StreamReader(stream); context.FileConfiguration = new File { Delimiter = ",", Qualifier = "'" }; var log = new ConsoleLogger(); var reader = context.BufferedRead(log).CsvReader(context, log); var parser = reader.ParseData(getConfig(), new ConsoleLogger()); var row = parser(); Assert.IsNotNull(row); Assert.IsTrue(string.IsNullOrEmpty(row.Error)); Assert.AreEqual(5, row.Columns.Count); Assert.AreEqual("a", row["A"].ToString()); Assert.AreEqual("1", row["B"].ToString()); Assert.AreEqual("c", row["C"].ToString()); Assert.AreEqual("2", row["D"].ToString()); Assert.AreEqual("01/10/2017", row["E"].ToString("dd/MM/yyyy")); Assert.IsInstanceOfType(row["B"], typeof(IValue <decimal>)); Assert.AreEqual(1, ((IValue <decimal>)row["B"]).GetValue()); row = parser(); Assert.IsTrue(string.IsNullOrEmpty(row.Error)); Assert.AreEqual(5, row.Columns.Count); Assert.AreEqual("1.1", row["B"].ToString()); Assert.IsInstanceOfType(row["B"], typeof(IValue <decimal>)); Assert.AreEqual((decimal)1.1, ((IValue <decimal>)row["B"]).GetValue()); }
public void TestFixedWidth() { var source = "\r123321101someextratext\r\n321123222"; var stream = base.GetStreamFromString(source); var context = new SourceFileContext(); context.Stream = new StreamReader(stream); context.FileConfiguration = getConfig(); var data = context.BufferedRead(new ConsoleLogger()).FixedWidthReader(context, new ConsoleLogger()) .ParseData(getConfig(), new ConsoleLogger()); var row = data(); Assert.IsNotNull(row); Console.WriteLine($":{row["c1"]}:{row["c2"]}:{row["c3"]}"); Assert.AreEqual(101, ((IValue <long>)row["c3"]).GetValue()); Assert.AreEqual("123", row["c1"].ToString()); Assert.AreEqual("321", row["c2"].ToString()); row = data(); Assert.AreEqual(222, ((IValue <long>)row["c3"]).GetValue()); Assert.AreEqual("123", row["c2"].ToString()); Assert.AreEqual("321", row["c1"].ToString()); }
public void DataParserTestNullValue() { var s = "'a',1,,2,'2017-10-01 14:15:16'\n'a1',1.1,c1,3,'2017-10-04"; var context = new SourceFileContext(); var stream = GetStreamFromString(s); context.Stream = new StreamReader(stream); context.FileConfiguration = new File { Delimiter = ",", Qualifier = "'" }; var log = new ConsoleLogger(); var reader = context.BufferedRead(log).CsvReader(context, log); var parser = reader.ParseData(getConfig(), new ConsoleLogger()); var row = parser(); Console.WriteLine(row.Error); Assert.IsTrue(string.IsNullOrEmpty(row.Error)); Assert.AreEqual(5, row.Columns.Count); Assert.IsTrue(row["C"].IsNull); }