public void Should_support_get_column_schema() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { dbfDataReader.CanGetColumnSchema().ShouldBeTrue(); } }
public DbfMemo1251Tests() { var options = new DbfDataReaderOptions { Encoding = Encoding.GetEncoding("WINDOWS-1251") }; DbfDataReader = new DbfDataReader(FixturePath, options); }
public void Should_get_typed_values() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { var columns = dbfDataReader.GetColumnSchema(); columns.Count.ShouldBe(31); for (var i = 0; i < dbfDataReader.FieldCount; i++) { if (dbfDataReader.IsDBNull(i)) { var value = dbfDataReader.GetValue(i); value.ShouldBeNull(); continue; } var fieldType = dbfDataReader.GetFieldType(i); var typeCode = Type.GetTypeCode(fieldType); switch (typeCode) { case TypeCode.Boolean: dbfDataReader.GetBoolean(i); break; case TypeCode.Int32: dbfDataReader.GetInt32(i); break; case TypeCode.DateTime: dbfDataReader.GetDateTime(i); break; case TypeCode.Single: dbfDataReader.GetFloat(i); break; case TypeCode.Double: dbfDataReader.GetDouble(i); break; case TypeCode.Decimal: dbfDataReader.GetDecimal(i); break; case TypeCode.String: dbfDataReader.GetString(i); break; default: // no cheating throw new NotSupportedException($"Unsupported field type: {fieldType} for column at index: {i}"); } } } }
public void Should_throw_exception_when_casting_to_wrong_type() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { dbfDataReader.Read(); var exception = Should.Throw <InvalidCastException>(() => dbfDataReader.GetInt32(0)); exception.Message.ShouldBe( "Unable to cast object of type 'System.String' to type 'System.Int32' at ordinal '0'."); } }
public void Should_be_able_to_read_all_the_rows() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { var rowCount = 0; while (dbfDataReader.Read()) { rowCount++; var valueCol1 = dbfDataReader.GetString(0); var valueCol2 = dbfDataReader.GetDecimal(10); } rowCount.ShouldBe(14); } }
public void Should_get_valid_schema_table() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { var schemaTable = dbfDataReader.GetSchemaTable(); schemaTable.ShouldNotBeNull(); schemaTable.Rows.Count.ShouldBe(31); var index = 0; var rows = schemaTable.Rows; foreach (var line in FixtureHelpers.GetFieldLines(FixtureSummaryPath)) { var row = rows[index++]; ValidateRow(row, line); } } }
public static void ReadField(this DbfDataReader dbfDataReader, int ordinal) { var fieldType = dbfDataReader.GetFieldType(ordinal); var typeCode = Type.GetTypeCode(fieldType); switch (typeCode) { case TypeCode.Boolean: dbfDataReader.GetBoolean(ordinal); break; case TypeCode.Int32: dbfDataReader.GetInt32(ordinal); break; case TypeCode.DateTime: dbfDataReader.GetDateTime(ordinal); break; case TypeCode.Single: dbfDataReader.GetFloat(ordinal); break; case TypeCode.Double: dbfDataReader.GetDouble(ordinal); break; case TypeCode.Decimal: dbfDataReader.GetDecimal(ordinal); break; case TypeCode.String: dbfDataReader.GetString(ordinal); break; case TypeCode.Object: dbfDataReader.GetValue(ordinal); break; default: Console.WriteLine($"Unrecognised type: fieldType: {fieldType}, typeCode: {typeCode} "); // no cheating throw new NotSupportedException(); } }
public void DbfDataReader() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { var cols = dbfDataReader.GetColumnSchema(); var allowDbNull = cols.Select(c => c.AllowDBNull != false).ToArray(); while (dbfDataReader.Read()) { for (var ordinal = 0; ordinal < dbfDataReader.FieldCount; ordinal++) { if (allowDbNull[ordinal] && dbfDataReader.IsDBNull(ordinal)) { continue; } dbfDataReader.ReadField(ordinal); } } } }
public void Should_skip_deleted_rows() { var options = new DbfDataReaderOptions { SkipDeletedRecords = true }; using (var dbfDataReader = new DbfDataReader(FixturePath, options)) { var rowCount = 0; while (dbfDataReader.Read()) { rowCount++; var valueCol1 = dbfDataReader.GetString(0); var valueCol2 = dbfDataReader.GetDecimal(10); } rowCount.ShouldBe(12); } }
public void Should_get_valid_column_schema() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { var columns = dbfDataReader.GetColumnSchema(); columns.Count.ShouldBe(31); using (var dbColumns = columns.GetEnumerator()) { dbColumns.MoveNext(); foreach (var line in FixtureHelpers.GetFieldLines(FixtureSummaryPath)) { var dbColumn = dbColumns.Current; ValidateColumn(dbColumn, line); dbColumns.MoveNext(); } } } }
public void Should_have_valid_first_row_values() { using (var dbfDataReader = new DbfDataReader(FixturePath)) { dbfDataReader.Read().ShouldBeTrue(); dbfDataReader.GetString(0).ShouldBe("0507121"); dbfDataReader.GetString(1).ShouldBe("CMP"); dbfDataReader.GetString(2).ShouldBe("circular"); dbfDataReader.GetString(3).ShouldBe("12"); dbfDataReader.GetString(4).ShouldBe(string.Empty); dbfDataReader.GetString(5).ShouldBe("no"); dbfDataReader.GetString(6).ShouldBe("Good"); dbfDataReader.GetString(7).ShouldBe(string.Empty); dbfDataReader.GetDateTime(8).ShouldBe(new DateTime(2005, 7, 12)); dbfDataReader.GetString(9).ShouldBe("10:56:30am"); dbfDataReader.GetDecimal(10).ShouldBe(5.2m); dbfDataReader.GetDecimal(11).ShouldBe(2.0m); dbfDataReader.GetString(12).ShouldBe("Postprocessed Code"); dbfDataReader.GetString(13).ShouldBe("GeoXT"); dbfDataReader.GetDateTime(14).ShouldBe(new DateTime(2005, 7, 12)); dbfDataReader.GetString(15).ShouldBe("10:56:52am"); dbfDataReader.GetString(16).ShouldBe("New"); dbfDataReader.GetString(17).ShouldBe("Driveway"); dbfDataReader.GetString(18).ShouldBe("050712TR2819.cor"); dbfDataReader.GetInt32(19).ShouldBe(2); dbfDataReader.GetInt32(20).ShouldBe(2); dbfDataReader.GetString(21).ShouldBe("MS4"); dbfDataReader.GetInt32(22).ShouldBe(1331); dbfDataReader.GetDecimal(23).ShouldBe(226625.000m); dbfDataReader.GetDecimal(24).ShouldBe(1131.323m); dbfDataReader.GetDecimal(25).ShouldBe(3.1m); dbfDataReader.GetDecimal(26).ShouldBe(1.3m); dbfDataReader.GetDecimal(27).ShouldBe(0.897088m); dbfDataReader.GetDecimal(28).ShouldBe(557904.898m); dbfDataReader.GetDecimal(29).ShouldBe(2212577.192m); dbfDataReader.GetInt32(30).ShouldBe(401); } }
public void Dispose() { DbfDataReader.Dispose(); DbfDataReader = null; }
public DbfDataReaderTests() { DbfDataReader = new DbfDataReader(FixturePath); }