public void TestNullableExtensions_AllNotNull() { string data = String.Join(",", new object[] { (byte)0, // Byte (short)1, // Short 2, // Int 3L, // Long 4f, // Float 5.0, // Double 6m, // Decimal "abc", // String new DateTime(2018, 07, 08), // DateTime new Guid("{2E13CDEB-6A06-4A79-A446-B057F2881406}"), // Guid DayOfWeek.Sunday // Enum }); var schema = GetSchema(); var stringReader = new StringReader(data); var csvReader = new SeparatedValueReader(stringReader, schema); var dataReader = new FlatFileDataReader(csvReader); Assert.IsTrue(dataReader.Read(), "A record was not read."); Assert.AreEqual((byte)0, dataReader.GetNullableByte(0), "The byte was not null."); Assert.AreEqual((short)1, dataReader.GetNullableInt16(1), "The byte was not null."); Assert.AreEqual(2, dataReader.GetNullableInt32(2), "The byte was not null."); Assert.AreEqual(3L, dataReader.GetNullableInt64(3), "The byte was not null."); Assert.AreEqual(4f, dataReader.GetNullableFloat(4), "The byte was not null."); Assert.AreEqual(5.0, dataReader.GetNullableDouble(5), "The byte was not null."); Assert.AreEqual(6m, dataReader.GetNullableDecimal(6), "The byte was not null."); Assert.AreEqual("abc", dataReader.GetNullableString(7), "The byte was not null."); Assert.AreEqual(new DateTime(2018, 07, 08), dataReader.GetNullableDateTime(8), "The byte was not null."); Assert.AreEqual(new Guid("{2E13CDEB-6A06-4A79-A446-B057F2881406}"), dataReader.GetNullableGuid(9), "The byte was not null."); Assert.AreEqual(DayOfWeek.Sunday, dataReader.GetNullableEnum <DayOfWeek>(10), "The byte was not null."); Assert.IsFalse(dataReader.Read(), "Too many records were read."); }
public void RunFlatFiles_FlatFileDataReader_ByName() { var reader = new StringReader(data); var schema = GetSchema(); var csvReader = new SeparatedValueReader(reader, schema, new SeparatedValueOptions() { IsFirstRecordSchema = true }); var dataReader = new FlatFileDataReader(csvReader); var people = new List <Person>(); while (dataReader.Read()) { var person = new Person() { FirstName = dataReader.GetString("FirstName"), LastName = dataReader.GetString("LastName"), Age = dataReader.GetInt32("Age"), Street1 = dataReader.GetString("Street1"), Street2 = dataReader.GetString("Street2"), City = dataReader.GetString("City"), State = dataReader.GetString("State"), Zip = dataReader.GetString("Zip"), FavoriteColor = dataReader.GetString("FavoriteColor"), FavoriteFood = dataReader.GetString("FavoriteFood"), FavoriteSport = dataReader.GetString("FavoriteSport"), CreatedOn = dataReader.GetDateTime("CreatedOn"), IsActive = dataReader.GetBoolean("IsActive") }; people.Add(person); } }
public void RunFlatFiles_FlatFileDataReader_ByPosition() { var reader = new StringReader(data); var schema = GetSchema(); var csvReader = new SeparatedValueReader(reader, schema, new SeparatedValueOptions() { IsFirstRecordSchema = true }); var dataReader = new FlatFileDataReader(csvReader); var people = new List <Person>(); while (dataReader.Read()) { var person = new Person() { FirstName = dataReader.GetString(0), LastName = dataReader.GetString(1), Age = dataReader.GetInt32(2), Street1 = dataReader.GetString(3), Street2 = dataReader.GetString(4), City = dataReader.GetString(5), State = dataReader.GetString(6), Zip = dataReader.GetString(7), FavoriteColor = dataReader.GetString(8), FavoriteFood = dataReader.GetString(9), FavoriteSport = dataReader.GetString(10), CreatedOn = dataReader.GetDateTime(11), IsActive = dataReader.GetBoolean(12) }; people.Add(person); } }
public void TestFlatFileReader_IgnoreIgnoredColumns() { const string data = @"A,B,C 1,2,3 4,5,6"; var schema = new SeparatedValueSchema(); schema.AddColumn(new StringColumn("A")); schema.AddColumn(new IgnoredColumn("Ignored")); schema.AddColumn(new StringColumn("C")); var options = new SeparatedValueOptions() { IsFirstRecordSchema = true }; var textReader = new StringReader(data); var csvReader = new SeparatedValueReader(textReader, schema, options); using (var dataReader = new FlatFileDataReader(csvReader)) { Assert.AreEqual("A", dataReader.GetName(0)); Assert.AreEqual("C", dataReader.GetName(1)); Assert.AreEqual(0, dataReader.GetOrdinal("A")); Assert.AreEqual(-1, dataReader.GetOrdinal("B")); Assert.AreEqual(1, dataReader.GetOrdinal("C")); var schemaTable = dataReader.GetSchemaTable(); string[] columnNames = schemaTable.Rows.OfType <DataRow>() .Select(r => r.Field <string>("ColumnName")) .ToArray(); CollectionAssert.AreEqual(new[] { "A", "C" }, columnNames); Assert.IsTrue(dataReader.Read()); object[] values1 = dataReader.GetValues(); CollectionAssert.AreEqual(new[] { "1", "3" }, values1); Assert.IsTrue(dataReader.Read()); object[] values2 = dataReader.GetValues(); CollectionAssert.AreEqual(new[] { "4", "6" }, values2); Assert.IsFalse(dataReader.Read()); } }
public void ShouldGetRecordsFromReader() { FlatFileDataReader dataReader = GetFlatFileReader(); Assert.IsTrue(dataReader.Read(), "The first record could not be read."); Assert.AreEqual(1, dataReader.GetInt32("Id"), "The wrong 'Id' was retrieved for 'Bob'."); Assert.AreEqual("Bob", dataReader.GetString("Name"), "The wrong 'Name' was retrieved for 'Bob'."); Assert.AreEqual(new DateTime(2018, 07, 03), dataReader.GetDateTime("CreatedOn"), "The wrong 'CreatedOn' was retrieved for 'Bob'."); Assert.IsTrue(dataReader.GetBoolean("IsActive"), "The wrong 'IsActive' was retrieved for 'Bob'"); Assert.AreEqual(10, dataReader.GetNullableInt32("VisitCount"), "The wrong 'VisitCount' was retrieved for 'Bob'."); Assert.IsTrue(dataReader.Read(), "The second record could not be read."); Assert.AreEqual(2, dataReader.GetInt32("Id"), "The wrong 'Id' was retrieved for 'Susan'."); Assert.AreEqual("Susan", dataReader.GetString("Name"), "The wrong 'Name' was retrieved for 'Susan'."); Assert.AreEqual(new DateTime(2018, 07, 04), dataReader.GetDateTime("CreatedOn"), "The wrong 'CreatedOn' was retrieved for 'Susan'."); Assert.IsFalse(dataReader.GetBoolean("IsActive"), "The wrong 'IsActive' was retrieved for 'Susan'"); Assert.AreEqual(null, dataReader.GetNullableInt32("VisitCount"), "The wrong 'VisitCount' was retrieved for 'Susan'."); Assert.IsFalse(dataReader.Read(), "Too many records were read."); }
public void TestNullableExtensions_AllNull() { string data = String.Join(",", typeof(NullableValues).GetProperties().Select(x => (string)null)); var schema = GetSchema(); var stringReader = new StringReader(data); var csvReader = new SeparatedValueReader(stringReader, schema); var dataReader = new FlatFileDataReader(csvReader); Assert.IsTrue(dataReader.Read(), "A record was not read."); Assert.IsNull(dataReader.GetNullableByte(0), "The byte was not null."); Assert.IsNull(dataReader.GetNullableInt16(1), "The byte was not null."); Assert.IsNull(dataReader.GetNullableInt32(2), "The byte was not null."); Assert.IsNull(dataReader.GetNullableInt64(3), "The byte was not null."); Assert.IsNull(dataReader.GetNullableFloat(4), "The byte was not null."); Assert.IsNull(dataReader.GetNullableDouble(5), "The byte was not null."); Assert.IsNull(dataReader.GetNullableDecimal(6), "The byte was not null."); Assert.IsNull(dataReader.GetNullableString(7), "The byte was not null."); Assert.IsNull(dataReader.GetNullableDateTime(8), "The byte was not null."); Assert.IsNull(dataReader.GetNullableGuid(9), "The byte was not null."); Assert.IsNull(dataReader.GetNullableEnum <DayOfWeek>(10), "The byte was not null."); Assert.IsFalse(dataReader.Read(), "Too many records were read."); }
public void ShouldGetRecordsFromReader_GetValue() { FlatFileDataReader dataReader = GetFlatFileReader(); Assert.IsTrue(dataReader.Read(), "The first record could not be read."); Assert.AreEqual(1, dataReader.GetValue <int>("Id"), "The wrong 'Id' was retrieved for 'Bob'."); Assert.AreEqual("Bob", dataReader.GetValue <string>("Name"), "The wrong 'Name' was retrieved for 'Bob'."); Assert.AreEqual(new DateTime(2018, 07, 03), dataReader.GetValue <DateTime>("CreatedOn"), "The wrong 'CreatedOn' was retrieved for 'Bob'."); Assert.IsTrue(dataReader.GetValue <bool>("IsActive"), "The wrong 'IsActive' was retrieved for 'Bob'"); Assert.AreEqual(10, dataReader.GetValue <int?>("VisitCount"), "The wrong 'VisitCount' was retrieved for 'Bob'."); Assert.AreEqual(new Guid("DC3A6AE3-00C8-4884-AC0F-F61EB769DFEB"), dataReader.GetValue <Guid?>("UniqueId"), "The wrong 'UniqueId' was retrieved for 'Bob'."); Assert.IsTrue(dataReader.Read(), "The second record could not be read."); Assert.AreEqual(2, dataReader.GetValue <int>("Id"), "The wrong 'Id' was retrieved for 'Susan'."); Assert.AreEqual("Susan", dataReader.GetValue <string>("Name"), "The wrong 'Name' was retrieved for 'Susan'."); Assert.AreEqual(new DateTime(2018, 07, 04), dataReader.GetValue <DateTime>("CreatedOn"), "The wrong 'CreatedOn' was retrieved for 'Susan'."); Assert.IsFalse(dataReader.GetValue <bool>("IsActive"), "The wrong 'IsActive' was retrieved for 'Susan'"); Assert.AreEqual(null, dataReader.GetValue <int?>("VisitCount"), "The wrong 'VisitCount' was retrieved for 'Susan'."); Assert.AreEqual(new Guid("{24C250EB-87C9-45DE-B01F-71A7754C6AAD}"), dataReader.GetValue <Guid?>("UniqueId"), "The wrong 'UniqueId' was retrieved for 'Susan'."); Assert.IsFalse(dataReader.Read(), "Too many records were read."); }
public void RunFlatFiles_FlatFileDataReader_GetValue() { var reader = new StringReader(data); var schema = new SeparatedValueSchema(); schema.AddColumn(new StringColumn("FirstName")); schema.AddColumn(new StringColumn("LastName")); schema.AddColumn(new StringColumn("Age")); schema.AddColumn(new StringColumn("Street1")); schema.AddColumn(new StringColumn("Street2")); schema.AddColumn(new StringColumn("City")); schema.AddColumn(new StringColumn("State")); schema.AddColumn(new StringColumn("Zip")); schema.AddColumn(new StringColumn("FavoriteColor")); schema.AddColumn(new StringColumn("FavoriteFood")); schema.AddColumn(new StringColumn("FavoriteSport")); schema.AddColumn(new StringColumn("CreatedOn")); schema.AddColumn(new StringColumn("IsActive")); var csvReader = new SeparatedValueReader(reader, schema, new SeparatedValueOptions() { IsFirstRecordSchema = true }); var dataReader = new FlatFileDataReader(csvReader); var people = new List <Person>(); while (dataReader.Read()) { var person = new Person() { FirstName = dataReader.GetValue <string>(0), LastName = dataReader.GetValue <string>(1), Age = dataReader.GetValue <int>(2), Street1 = dataReader.GetValue <string>(3), Street2 = dataReader.GetValue <string>(4), City = dataReader.GetValue <string>(5), State = dataReader.GetValue <string>(6), Zip = dataReader.GetValue <string>(7), FavoriteColor = dataReader.GetValue <string>(8), FavoriteFood = dataReader.GetValue <string>(9), FavoriteSport = dataReader.GetValue <string>(10), CreatedOn = dataReader.GetValue <DateTime?>(11), IsActive = dataReader.GetValue <bool>(12) }; people.Add(person); } }