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()); } }
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); } }