public void map_without_adapter()
        {
            var record = Substitute.For<IDataRecord>();
            var actual = new Ok();
            record["Id"].Returns("Hej");

            var sut = new PropertyMapping<Ok>("Id", (o, o1) => o.Id = (string)o1, o => o.Id);
            sut.Map(record, actual);

            actual.Id.Should().Be("Hej");
        }
        public void skip_db_null_value()
        {
            var record = Substitute.For<IDataRecord>();
            var actual = new Ok();
            record["Id2"].Returns(DBNull.Value);

            var sut = new PropertyMapping<Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);
            sut.ColumnName = "Id2";
            sut.Map(record, actual);

            actual.Id.Should().BeNull();
        }
        public void use_column_name_and_not_property_name_in_the_record()
        {
            var record = Substitute.For<IDataRecord>();
            var actual = new Ok();
            record["Id2"].Returns("Hej");

            var sut = new PropertyMapping<Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);
            sut.ColumnName = "Id2";
            sut.Map(record, actual);

            actual.Id.Should().Be("Hej");
        }
        public void use_the_adapter_son()
        {
            var record = Substitute.For<IDataRecord>();
            var actual = new Ok();
            record["Id"].Returns("Hej");

            var sut = new PropertyMapping<Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);
            sut.ColumnToPropertyAdapter = o => o + "Hello";
            sut.Map(record, actual);

            actual.Id.Should().Be("HejHello");
        }
        public void should_replace_dbnull_with_the_defined_replacement_value_when_mapping_column_value()
        {
            var record = Substitute.For<IDataRecord>();
            var actual = new Ok();
            record["Age"].Returns(DBNull.Value);

            var sut = new PropertyMapping<Ok>("Age", (o, o1) => o.Age= (int)o1, ok => ok.Age);
            sut.NullValue = 1;
            sut.Map(record, actual);

            actual.Age.Should().Be(1);
        }
        public void map_without_adapter()
        {
            var record = Substitute.For <IDataRecord>();
            var actual = new Ok();

            record["Id"].Returns("Hej");

            var sut = new PropertyMapping <Ok>("Id", (o, o1) => o.Id = (string)o1, o => o.Id);

            sut.Map(record, actual);

            actual.Id.Should().Be("Hej");
        }
        public void use_column_name_and_not_property_name_in_the_record()
        {
            var record = Substitute.For <IDataRecord>();
            var actual = new Ok();

            record["Id2"].Returns("Hej");

            var sut = new PropertyMapping <Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);

            sut.ColumnName = "Id2";
            sut.Map(record, actual);

            actual.Id.Should().Be("Hej");
        }
        public void should_replace_dbnull_with_the_defined_replacement_value_when_mapping_column_value()
        {
            var record = Substitute.For <IDataRecord>();
            var actual = new Ok();

            record["Age"].Returns(DBNull.Value);

            var sut = new PropertyMapping <Ok>("Age", (o, o1) => o.Age = (int)o1, ok => ok.Age);

            sut.NullValue = 1;
            sut.Map(record, actual);

            actual.Age.Should().Be(1);
        }
        public void use_the_adapter_son()
        {
            var record = Substitute.For <IDataRecord>();
            var actual = new Ok();

            record["Id"].Returns("Hej");

            var sut = new PropertyMapping <Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);

            sut.ColumnToPropertyAdapter = o => o + "Hello";
            sut.Map(record, actual);

            actual.Id.Should().Be("HejHello");
        }
        public void skip_db_null_value()
        {
            var record = Substitute.For <IDataRecord>();
            var actual = new Ok();

            record["Id2"].Returns(DBNull.Value);

            var sut = new PropertyMapping <Ok>("Id", (o, o1) => o.Id = (string)o1, ok => ok.Id);

            sut.ColumnName = "Id2";
            sut.Map(record, actual);

            actual.Id.Should().BeNull();
        }