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.");
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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());
            }
        }
Esempio n. 5
0
        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.");
        }
Esempio n. 7
0
        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);
            }
        }