コード例 #1
0
ファイル: ReaderTests.cs プロジェクト: HerrDmitry/DataMover
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }