public void GetAllStatuses_ReturnsResults_CanBeParsedWithMissingFields() { DatabaseBootstrapper.CreateAndPopulate(); DataTable dataTable = QueryRunner.ExecuteStoredProcedure("uspGetAllStatuses"); DatabaseBootstrapper.Drop(); DataTableConverter dtp = new DataTableConverter(); var results = dtp.ConvertToObjectList <StatusPropertyNameMissing>(dataTable); Assert.Equal(dataTable.Rows.Count, results.Count()); }
public void GetAllStatuses_ReturnsResults_ThrowsOnExtraProperty() { DatabaseBootstrapper.CreateAndPopulate(); DataTable dataTable = QueryRunner.ExecuteStoredProcedure("uspGetAllStatuses"); DatabaseBootstrapper.Drop(); DataTableConverter dtp = new DataTableConverter(); dtp.DataTableParserSettings.MissingMappingHandling = MissingMappingHandling.Error; Assert.Throws <MissingMappingException <StatusExtraProperty> >(() => dtp.ConvertToObjectList <StatusExtraProperty>(dataTable)); }
public void GetAllStatuses_ReturnsResults_IgnoresExtraProperty() { DatabaseBootstrapper.CreateAndPopulate(); DataTable dataTable = QueryRunner.ExecuteStoredProcedure("uspGetAllStatuses"); DatabaseBootstrapper.Drop(); DataTableConverter dtp = new DataTableConverter(); dtp.DataTableParserSettings.MissingMappingHandling = MissingMappingHandling.Ignore; var results = dtp.ConvertToObjectList <StatusExtraProperty>(dataTable); Assert.Equal(dataTable.Rows.Count, results.Count()); }
public void GetAllStatuses_ReturnsResults_CanBeParsedWithCorrectObjects() { DatabaseBootstrapper.CreateAndPopulate(); DataTable dataTable = QueryRunner.ExecuteStoredProcedure("uspGetAllStatuses"); DatabaseBootstrapper.Drop(); DataTableConverter dtp = new DataTableConverter(); var results = dtp.ConvertToObjectList <StatusPropertyNamesMatch>(dataTable); Assert.True(results.Where(r => r.Id == (int)dataTable.Rows[0]["Id"] && r.Description == dataTable.Rows[0]["Description"].ToString() && r.IsPublic == (bool)dataTable.Rows[0]["IsPublic"]).Count() == 1); }
static void Main(string[] args) { DataTableConverter dtp = new DataTableConverter(); int count = 2000000; List <TestClass> classes = new List <TestClass>(); for (int i = 0; i < count; i++) { classes.Add(new TestClass { Id = i, Name = "Name" + i, Postcode = "GU" + i, CreationDate = new DateTime(2001, 1, 1), ModifiedDate = new DateTime(2001, 1, 1) }); } DataTable dt = DataTableFactory.GenerateDataTableFilledWithObjects(classes); dtp.DataTableParserSettings.Resolver = Resolver.Default; Stopwatch sw = Stopwatch.StartNew(); dtp.ConvertToObjectList <TestClass>(dt); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds + " Milliseconds Total"); Console.WriteLine(sw.ElapsedMilliseconds / (decimal)count + " Milliseconds Per Object"); if (Debugger.IsAttached) { Debugger.Break(); } }