Пример #1
0
        public void TestJaggedField()
        {
            using (CsvReader r = new CsvReader(new StringReader(CSV_DOC1)))
            {
                Assert.AreEqual(0, r.Depth);
                Assert.IsFalse(r.IsClosed);
                Assert.AreEqual(3, r.FieldCount);
                Assert.IsTrue(r.Read());
                Assert.AreEqual(3, r.FieldCount);
                Assert.IsTrue(r.Read());
                
                //second row has an extra field
                Assert.AreEqual(4, r.FieldCount);
                Assert.AreEqual("3", r.GetName(3));
                Assert.AreEqual(3, r.GetOrdinal("3"));
                Assert.AreEqual("extra", r.GetValue(3));

                Assert.IsTrue(r.Read());
                Assert.IsFalse(r.IsDBNull(0));
                Assert.AreEqual("3a", r.GetString("f1"));
                Assert.IsTrue(r.IsDBNull(1));
                Assert.IsTrue(r.IsDBNull(2));

                Assert.IsTrue(r.Read());
                Assert.IsTrue(r.Read());
                Assert.IsFalse(r.Read());
            }
        }
Пример #2
0
        public void TestFieldInfo()
        {
            using (CsvReader r = new CsvReader(new StringReader(CSV_DOC1)))
            {
                Assert.AreEqual(3, r.FieldCount);
                for (int i = 0; i < r.FieldCount; i++)
                {
                    Assert.AreEqual(typeof(String), r.GetFieldType(i));
                    Assert.AreEqual(typeof(String).Name, ((IDataReader)r).GetDataTypeName(i));
                    Assert.AreEqual("f" + (i + 1).ToString(), r.GetName(i).ToString());
                    Assert.AreEqual(i, r.GetOrdinal("f" + (i + 1).ToString()));
                }

                while (r.Read())
                { }

                Assert.IsFalse(r.IsClosed);
                Assert.IsFalse(((IDataReader)r).NextResult());
                Assert.IsTrue(r.IsClosed);
            }
        }