public void GetNullableDateTime(string value) { DateTime? dateTime = value.IsNullOrEmpty() ? null : value.ParseDateTime(); InMemoryDataReader dataReader = CreateReader(dateTime); dataReader.GetNullableDateTime(0).Should().Be(dateTime); }
public void GetNullableDecimal(double?value) { decimal? d = (decimal?)value; InMemoryDataReader dataReader = CreateReader(d); dataReader.GetNullableDecimal(0).Should().Be(d); }
public void MaterializeByteArray() { var modelMapper = CreateModelMapperForBar(); DynamicMethodModelFactory factory = new DynamicMethodModelFactory(new DatabaseMapper(modelMapper)); var rows = new List <Dictionary <string, object> > { new Dictionary <string, object>() }; var image = new byte[] { 0x20, 0x20, 0x20 }; rows[0].Add("Prop1", 2); rows[0].Add("Prop2", 1); rows[0].Add("Prop4", 111); rows[0].Add("Image", image); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Bar>(data); var bar = fact(data); bar.Image.Should().BeEquivalentTo(image); }
public void CallOnAfterMaterializeWhenModelImplementIMaterialize() { var modelMapper = CreateModelMapperForBar(); DynamicMethodModelFactory factory = new DynamicMethodModelFactory(new DatabaseMapper(modelMapper)); var rows = new List <Dictionary <string, object> > { new Dictionary <string, object>() }; rows[0].Add("Prop1", 2); rows[0].Add("Prop2", 1); rows[0].Add("Prop4", 111); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Bar>(data); var bar = fact(data); bar.Prop3.Should().Be(6); bar.Prop4.Should().Be(111); }
public void TestGetValueNotReadYet() { using (IDataReader reader = new InMemoryDataReader(false, this.Data1)) { reader.GetString(0); } }
private void Flush() { var reader = new InMemoryDataReader(rows, filledRowsCount, columns.Length); target.BulkCopy(reader, tableName, columns.Length); filledRowsCount = 0; }
public void GetNullableGuid(string value) { Guid?g = value.IsNullOrEmpty() ? null : new Guid(value); InMemoryDataReader dataReader = CreateReader(g); dataReader.GetNullableGuid(0).Should().Be(g); }
public void MaterializeByteArrayInvalidCast() { var modelMapper = CreateModelMapperForBar(); DynamicMethodModelFactory factory = new DynamicMethodModelFactory(new DatabaseMapper(modelMapper)); var rows = new List <Dictionary <string, object> > { new Dictionary <string, object>() }; var image = new byte[] { 0x20, 0x20, 0x20 }; rows[0].Add("Prop1", 2); rows[0].Add("Prop2", 1); rows[0].Add("Prop4", image); // Bar.Prop4 => integer rows[0].Add("Image", image); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Bar>(data); Bar bar; Action act = () => bar = fact(data); act.Should().Throw <InvalidCastException>(); }
public void TestGetStringNull() { using (IDataReader reader = new InMemoryDataReader(false, this.Data4)) { Assert.IsTrue(reader.Read(), "Read"); reader.GetString(1); } }
public void TestNextResultPastEnd() { using (IDataReader reader = new InMemoryDataReader(false, this.Data1, this.Data2)) { Assert.IsTrue(reader.NextResult(), "Next result 1"); Assert.IsFalse(reader.NextResult(), "Next result 2"); } }
public void TestConstructorWithHeaders() { using (IDataReader reader = new InMemoryDataReader(true, this.Data1, this.Data2)) { Assert.IsNotNull(reader, "Reader nullability"); Assert.AreEqual(3, reader.FieldCount, "Reader field count"); Assert.AreEqual("R1C3", reader.GetName(2), "Column name"); } }
public void TestGetBoolean() { using (IDataReader reader = new InMemoryDataReader(false, this.Data3)) { Assert.IsTrue(reader.Read(), "Read"); Assert.IsTrue(reader.GetBoolean(0)); Assert.IsFalse(reader.GetBoolean(1)); } }
public void TestNextResult() { using (IDataReader reader = new InMemoryDataReader(false, this.Data1, this.Data2)) { Assert.AreEqual(3, reader.FieldCount, "Field count."); Assert.IsTrue(reader.NextResult(), "Next result"); Assert.AreEqual(2, reader.FieldCount, "Field count has changed."); Assert.IsTrue(reader.Read(), "Read"); Assert.AreEqual("TWO R1C2", reader.GetString(1), "Row 1 column 2."); } }
public void TestGetValuesWithNull() { using (IDataReader reader = new InMemoryDataReader(false, this.Data4)) { Assert.IsTrue(reader.Read(), "Read"); object[] buffer = new object[3]; Assert.AreEqual(2, reader.GetValues(buffer), "Number of values"); var strings = buffer.Cast <string>().ToArray(); Assert.AreEqual(new string[] { "R1C1", null, "R1C3" }, strings, "Data equal"); } }
public void IgnoreNonExistingProperties() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); rows[0].Add("XXX", 3); using IDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); }
public void GetEmptyDataFromEmptyReader() { var sourceData = CreateDataForReader(); sourceData.Clear(); IDataReader reader = new InMemoryDataReader(sourceData); ModelBuilder builder = CreateBuilder(); var data = builder.Materialize <Foo>(reader).ToList(); data.Should().HaveCount(0); }
public void CreateFactoryWhichConvertNullableType() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Age.Should().Be(18.5); }
public void CreateFactoryWhichKnowFillingObjectsWithEnums() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); rows[0].Add("PropertyEnum", 3); using IDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.PropertyEnum.Should().Be(TestEnum.Value3); }
public void IgnoreNonMapFields() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); rows[0].Add("Bar", 3); using IDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Bar.Should().Be(0); }
public void MaterializeDataFromReader() { IDataReader reader = new InMemoryDataReader(CreateDataForReader()); ModelBuilder builder = CreateBuilder(); var data = builder.Materialize <Foo>(reader).ToList(); data.Should().HaveCount(2); data[0].Id.Should().Be(1); data[0].PropertyGuid.Should().Be("ddc995d7-4dda-41ca-abab-7f45e651784a"); data[1].PropertyString.Should().Be("Kitty"); data[1].PropertyDateTime.Should().Be(new DateTime(1984, 4, 20)); }
public void CreateFactoryWhichUseConverter() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); rows[0].Add("PropertyEnumConv", "V2"); using IDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.PropertyEnumConv.Should().Be(TestEnum.Value2); }
private void Flush() { for (var i = 0; i < filledRowsCount; i++) { var r = rows[i]; for (var j = 0; j < columns.Length; j++) { r[j] = ConvertType(r[j], columns[j]); } } var reader = new InMemoryDataReader(rows, filledRowsCount, columns.Length); target.BulkCopy(reader, tableName, columns.Length); filledRowsCount = 0; }
public void TestRead() { using (IDataReader reader = new InMemoryDataReader(false, this.Data1)) { Assert.IsTrue(reader.Read(), "Read 1"); Assert.AreEqual("R1C2", reader.GetString(1)); Assert.IsTrue(reader.Read(), "Read 2"); Assert.AreEqual("R2C1", reader.GetString(0)); Assert.IsTrue(reader.Read(), "Read 3"); Assert.AreEqual("R3C3", reader.GetString(2)); Assert.IsFalse(reader.Read(), "Read 4"); } }
public void CreateFactoryWhichUseStandardTypeConverter() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); data.CurrentTypes[0] = typeof(double); data.CurrentValues[0] = 25.45; var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Id.Should().Be(25); }
public void NonNullableTypeMaterializeToNullable() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); rows[0].Add("PropertyDateTimeNullable", new DateTime(2005, 1, 5)); using InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); data.CurrentTypes[7] = typeof(DateTime); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.PropertyDateTimeNullable.Should().Be(new DateTime(2005, 1, 5)); }
public void CreateFactoryWhichKnowFillingObjectsWithPrimitiveTypes() { DynamicMethodModelFactory factory = CreateFactory(); IDataReader data = new InMemoryDataReader(CreateData()); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Id.Should().Be(1); foo.PropertyString.Should().Be("Hello"); foo.PropertyDouble.Should().Be(45.78); foo.PropertyDecimal.Should().Be(785.78M); foo.PropertyDateTime.Should().Be(new DateTime(1980, 7, 24)); foo.Is.Should().BeTrue(); foo.PropertyGuid.Should().Be(new Guid("ddc995d7-4dda-41ca-abab-7f45e651784a")); }
public void CreateFactoryWhichKnowFillingObjectsWithNullValues() { DynamicMethodModelFactory factory = CreateFactory(); var rows = CreateData(); InMemoryDataReader data = new InMemoryDataReader(rows); data.Read(); data.CurrentValues[1] = DBNull.Value; data.CurrentValues[2] = DBNull.Value; data.CurrentValues[6] = DBNull.Value; var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.PropertyString.Should().BeNull(); foo.PropertyDouble.Should().Be(0); foo.PropertyGuid.Should().BeEmpty(); }
public void InjectServiceToProperty() { var service = new TestService(); var factory = CreateFactory(CreateModelMapperWithInjection(service)); var rows = CreateData(); rows[0].Add("XXX", 3); using IDataReader data = new InMemoryDataReader(rows); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Service.Should().Be(service); data.Read(); foo = fact(data); foo.Service.Should().Be(service); }
public void CreateFactoryWhichKnowFillingObjectsWithPrimitiveTypes() { DynamicMethodModelFactory factory = CreateFactory(); using IDataReader data = new InMemoryDataReader(CreateData()); data.Read(); var fact = factory.GetFactory <Foo>(data); var foo = fact(data); foo.Id.Should().Be(1); foo.PropertyString.Should().Be("Hello"); foo.PropertyDouble.Should().Be(45.78); foo.PropertyDecimal.Should().Be(785.78M); foo.PropertyDateTime.Should().Be(new DateTime(1980, 7, 24)); foo.DateTimeOffset.Should().Be(new DateTimeOffset(1985, 9, 20, 10, 11, 22, 123, TimeSpan.FromHours(5))); foo.DateTimeOffsetNullable.Should().Be(new DateTimeOffset(1985, 9, 20, 10, 11, 22, 123, TimeSpan.FromHours(5))); foo.Float.Should().Be(12.8F); foo.FloatNullable.Should().Be(45.89F); foo.Is.Should().BeTrue(); foo.PropertyGuid.Should().Be(new Guid("ddc995d7-4dda-41ca-abab-7f45e651784a")); }
public void GetNullableInt16(short?value) { using InMemoryDataReader dataReader = CreateReader(value); dataReader.GetNullableInt16(0).Should().Be(value); }