Exemple #1
0
        should_not_ignore_field_if_column_not_exists_and_optional_is_not_set()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(1);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name2");
            Mock
            .Arrange(() => reader.GetOrdinal("name2"))
            .Returns(1);
            Mock
            .Arrange(() => reader.GetString(0))
            .Throws <ArgumentException>();

            var mapper =
                new DataReaderMapperBuilder <IgnoreType>(
                    "should_not_ignore_field_if_column_not_exists_and_optional_is_not_set")
                .Map(x => x.Name, "nohros")
                .Build();

            Assert.That(() => mapper.Map(reader).Name, Throws.InstanceOf <Exception>());
        }
Exemple #2
0
        public void should_map_field_if_column_exists_and_optional_is_set()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(1);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");

            var mapper =
                new DataReaderMapperBuilder <IgnoreType>(
                    "should_map_field_if_column_exists_and_optional_is_set")
                .Map(x => x.Name, "name", true)
                .Build();

            IgnoreType type = mapper.Map(reader);

            Assert.That(type.Name, Is.EqualTo("nohros"));
        }
Exemple #3
0
        public void should_not_map_ignored_property()
        {
            var reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(2);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetName(1))
            .Returns("location");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");

            var mapper =
                new DataReaderMapperBuilder <IgnoreType>(
                    "should_not_map_ignored_property")
                .AutoMap()
                .Ignore("name")
                .Build();

            Assert.That(() => mapper.Map(reader).Name, Is.Null);
        }
Exemple #4
0
        public void should_apply_transformation_before_post_action()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(1);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");

            var mapper =
                new DataReaderMapperBuilder <SimpleType>(
                    "should_apply_transformation_before_post_action")
                .Map(x => x.Name, "name")
                .Transform((r, t) => t.Name += "_1")
                .Transform((r, t) => t.Name += "_2")
                .Build();

            SimpleType type = mapper.Map(reader, t => t.Name += "_3");

            Assert.That(type.Name, Is.EqualTo("nohros_1_2_3"));
        }
Exemple #5
0
        public void should_ignore_field_if_column_not_exists_and_optional_is_set()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(1);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name2");
            Mock
            .Arrange(() => reader.GetOrdinal("name2"))
            .Returns(1);
            Mock
            .Arrange(() => reader.GetString(0))
            .Throws <ArgumentException>();

            var mapper =
                new DataReaderMapperBuilder <IgnoreType>(
                    "should_ignore_field_if_column_not_exists_and_optional_is_set")
                .Map(x => x.Name, "nohros", true)
                .Build();

            try {
                IgnoreType type = mapper.Map(reader);
                Assert.That(type.Name, Is.Null);
            } catch {
                Assert.Fail("Should not throws any exception");
            }
        }
Exemple #6
0
        public void should_map_interfaces_when_no_factory_supplied()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(1);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");
            var mapper =
                new DataReaderMapperBuilder <ISimpleType>(
                    "should_map_interfaces_when_no_factory_supplied")
                .Map(x => x.Name, "name")
                .Build();
            ISimpleType obj = mapper.Map(reader);

            Assert.That(obj.Name, Is.EqualTo("nohros"));
        }
        public void ShouldMapInteerfaces()
        {
            var builder = new SqlConnectionStringBuilder();

            builder.DataSource = "192.168.203.207";
            builder.UserID     = "nohros";
            builder.Password   = "******";

            using (var conn = new SqlConnection(builder.ToString()))
                using (
                    var cmd =
                        new SqlCommand(
                            "select 15 as Id, 'post' as text, Getdate() as CreationDate, 9 as Counter1, 10 as Counter2",
                            conn)) {
                    conn.Open();
                    using (var reader = cmd.ExecuteReader()) {
                        var mapper = new DataReaderMapperBuilder <PostPoco2>()
                                     .Map <int, TimeSpan>(poco => poco.Counter1, "counter1",
                                                          i => FromSeconds(i))
                                     .Map(x => x.Counter2, "counter2")
                                     //.SetFactory(() => new PostPoco2())
                                     .Build();
                        //Assert.Pass("Value:" + mapper.Map(reader).Counter1);
                        //mapper.Map(reader);
                    }
                }
            Dynamics_.AssemblyBuilder.Save("dynamics.dll");
        }
        public void ShoudMapToConstValues()
        {
            var reader = Mock.Create <IDataReader>();
            var mapper = new DataReaderMapperBuilder <IgnoreMapperTest>()
                         .Map("name", new ConstStringMapType("myname"))
                         .Build();

            Assert.That(mapper.Map(reader).Name, Is.EqualTo("myname"));
        }
        public void ShouldBuildDerivedInterface()
        {
            var mapper = new DataReaderMapperBuilder <MapperDerivedTest>()
                         .Build();

            Assert.That(mapper, Is.AssignableTo <DataReaderMapper <MapperDerivedTest> >());
            Assert.That(mapper, Is.AssignableTo <MapperDerivedTest>());
            Assert.That(mapper, Is.AssignableTo <MapperTest>());
        }
        /// <inheritdoc/>
        public IQueryMapper <T> ExecuteQuery <T>(string query)
        {
            IDataReaderMapper <T> mapper =
                new DataReaderMapperBuilder <T>()
                .AutoMap()
                .Build();

            return(ExecuteQuery(query, () => mapper));
        }
Exemple #11
0
        public void ShouldMapMemberExpression()
        {
            var reader = Mock.Create <IDataReader>();
            var mapper = new DataReaderMapperBuilder <MapperTest>("MyNamespace")
                         .Build()
                         .Map(reader);

            Assert.That(mapper, Is.AssignableTo <DataReaderMapper <MapperTest> >());
        }
Exemple #12
0
        public void shoud_map_to_a_constant()
        {
            IDataReader reader = GetDataReader();
            var         mapper =
                new DataReaderMapperBuilder <IgnoreType>("shoud_map_to_a_constant")
                .Map("name", TypeMaps.String("myname"))
                .Build();

            Assert.That(mapper.Map(reader).Name, Is.EqualTo("myname"));
        }
Exemple #13
0
        public void ShouldBuildDynamicType()
        {
            var reader = Mock.Create <IDataReader>();
            var mapper = new DataReaderMapperBuilder <MapperTest>("MyNamespace")
                         .Map("usuario_nome", "name")
                         .Build()
                         .Map(reader);

            Assert.That(mapper, Is.AssignableTo <DataReaderMapper <MapperTest> >());
        }
        /// <inheritdoc/>
        public IQueryMapper <T> ExecuteQuery <T>(string query,
                                                 Action <CommandBuilder> set_parameters)
        {
            IDataReaderMapper <T> mapper =
                new DataReaderMapperBuilder <T>()
                .AutoMap()
                .Build();

            return(ExecuteQuery(query, () => mapper, set_parameters));
        }
        /// <inheritdoc/>
        public IQueryMapper <T> ExecuteQuery <T>(string query,
                                                 CommandType command_type)
        {
            IDataReaderMapper <T> mapper =
                new DataReaderMapperBuilder <T>()
                .AutoMap()
                .Build();

            return(ExecuteQuery(query, () => mapper, command_type));
        }
Exemple #16
0
        public void should_map_composite_objects()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(2);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetName(1))
            .Returns("location");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetOrdinal("location"))
            .Returns(1);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");
            Mock
            .Arrange(() => reader.GetString(1))
            .Returns("127.0.0.1");

            var simple =
                new DataReaderMapperBuilder <ISimpleType>(
                    "should_map_composite_objects")
                .Map(x => x.Name, "name")
                .Build();

            var ignore =
                new DataReaderMapperBuilder <IgnoreType>(
                    "should_map_composite_objects")
                .Map(x => x.Name, "name")
                .Map(x => x.Location, "location")
                .Build();

            var composite =
                new DataReaderMapperBuilder <ICompositeType>(
                    "should_map_composite_objects")
                .Transform((r, c) => simple.MapCurrent(r, (ISimpleType)c))
                .Transform((r, c) => c.IgnoreType = ignore.MapCurrent(r))
                .Build();

            ICompositeType type = composite.Map(reader);

            Assert.That(type.IgnoreType, Is.Not.Null);
            Assert.That(type.Name, Is.EqualTo("nohros"));
            //Dynamics.Dynamics_.AssemblyBuilder.Save("test.dll");
        }
Exemple #17
0
        public void should_map_all_implemented_interfaces()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(3);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetName(1))
            .Returns("name1");
            Mock
            .Arrange(() => reader.GetName(2))
            .Returns("name2");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetOrdinal("name1"))
            .Returns(1);
            Mock
            .Arrange(() => reader.GetOrdinal("name2"))
            .Returns(2);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");
            Mock
            .Arrange(() => reader.GetString(1))
            .Returns("nohros1");
            Mock
            .Arrange(() => reader.GetString(2))
            .Returns("nohros2");

            var mapper =
                new DataReaderMapperBuilder <IDerivedType2>(
                    "should_map_all_implemented_interfaces")
                .Map(x => x.Name, "name")
                .Map(x => x.Name2, "name1")
                .Map(x => x.Name3, "name2")
                .Build();

            IDerivedType2 obj = mapper.Map(reader);

            Assert.That(obj.Name, Is.EqualTo("nohros"));
            Assert.That(obj.Name2, Is.EqualTo("nohros1"));
            Assert.That(obj.Name3, Is.EqualTo("nohros2"));
            //Dynamics.Dynamics_.AssemblyBuilder.Save("test.dll");
        }
Exemple #18
0
        public void ShouldBuildNestedDynamicType()
        {
            var reader = Mock.Create <IDataReader>();

            Mock
            .Arrange(() => reader.GetOrdinal(Arg.AnyString))
            .Returns(0);
            var mapper = new DataReaderMapperBuilder <NestedMapperTest>()
                         .Map("usuario_nome", "name")
                         .Build();
            var inner = mapper.Map(reader).Nested;

            Assert.That(inner, Is.AssignableTo <DataReaderMapper <MapperTest> >());
            Assert.That(inner, Is.AssignableTo <MapperTest>());
            Assert.That(mapper, Is.AssignableTo <DataReaderMapper <NestedMapperTest> >());
            Assert.That(mapper, Is.AssignableTo <NestedMapperTest>());
        }
Exemple #19
0
        public void should()
        {
            const string kExecute = @"
select distinct hc.cod_hist_cli
  ,hc.cod_dev
  ,cast(t.cod_cred as varchar) as cod_cred
  ,hc.data_cad
  ,isnull(hc.dt_agen_hist, hc.data_cad) as dt_agen_hist
  ,hc.usuario_cad
  ,hc.cod_ocor
  ,hc.data_up
  ,cast(case when hc.dt_agen_hist is null then 0 else 1 end as bit) as agendado
from historicos_clientes hc
  inner join historicos_clientes_titulos hct on hct.cod_hist_cli = hc.cod_hist_cli
  inner join titulos t with(nolock) on t.cod_tit = hct.cod_tit
where hc.cod_hist_cli between @min_cod_hist_cli and @max_cod_hist_cli
order by cod_hist_cli asc";

            var map = new DataReaderMapperBuilder <CobEventDto>()
                      .Map(x => x.AgentId, "usuario_cad")
                      .Map(x => x.Segment, "cod_cred")
                      .Map(x => x.Date, "data_cad")
                      .Map(x => x.DebtorId, "cod_dev")
                      .Map(x => x.ExpiryDate, "dt_agen_hist")
                      .Map(x => x.Id, "cod_hist_cli", typeof(int))
                      .Map(x => x.TypeId, "cod_ocor")
                      .Map(x => x.IsScheduled, "agendado")
                      .Map(x => x.RecordDate, "data_up")
                      .Build();
            var sql_connection_provider = new SqlConnectionProvider(@"Data Source=192.168.203.9\itau;Initial Catalog=cobsystems;User ID=nohros;Password=Noors03;");
            var sql_executor            = new SqlQueryExecutor(sql_connection_provider,
                                                               CommandType.Text);

            using (IQueryMapper <CobEventDto> mapper =
                       sql_executor
                       .ExecuteQuery(kExecute,
                                     () => map,
                                     builder =>
                                     builder
                                     .AddParameter("@min_cod_hist_cli", 631583866)
                                     .AddParameter("@max_cod_hist_cli", 631588866)))
            {
                Dynamics_.AssemblyBuilder.Save("nohros.tests.dll");
                mapper.Map(false);
            }
        }
Exemple #20
0
        public void should_map_partial_objects_through_transformation()
        {
            IDataReader reader = GetDataReader();

            Mock
            .Arrange(() => reader.FieldCount)
            .Returns(2);
            Mock
            .Arrange(() => reader.GetName(0))
            .Returns("name");
            Mock
            .Arrange(() => reader.GetName(1))
            .Returns("location");
            Mock
            .Arrange(() => reader.GetOrdinal("name"))
            .Returns(0);
            Mock
            .Arrange(() => reader.GetOrdinal("location"))
            .Returns(1);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("nohros");
            Mock
            .Arrange(() => reader.GetString(1))
            .Returns("127.0.0.1");

            var transformer =
                new DataReaderMapperBuilder <ISimpleType>(
                    "should_map_partial_objects_through_transformation")
                .Map(x => x.Name, "location")
                .Build();

            var mapper =
                new DataReaderMapperBuilder <IDerivedType>(
                    "should_map_partial_objects_through_transformation")
                .Map(x => x.Name, "name")
                .Transform(transformer.MapCurrent)
                .Build();

            IDerivedType type = mapper.Map(reader);

            Assert.That(type.Name, Is.EqualTo("nohros"));
            Assert.That(type.Name2, Is.EqualTo("127.0.0.1"));
        }
Exemple #21
0
        public void ShouldMapCustomColumnToProperty()
        {
            var builder = new SqlConnectionStringBuilder();

            builder.DataSource = "192.168.203.207";
            builder.UserID     = "nohros";
            builder.Password   = "******";

            using (var conn = new SqlConnection(builder.ToString()))
                using (var cmd = new SqlCommand("select 'nohros' as usuario_nome", conn)) {
                    conn.Open();
                    using (var reader = cmd.ExecuteReader()) {
                        var mapper = new DataReaderMapperBuilder <MapMapperTest>()
                                     .Map("name", "usuario_nome")
                                     .Build();
                        Assert.That(mapper.Map(reader).Name, Is.EqualTo("nohros"));
                    }
                }
        }
Exemple #22
0
        public void ShouldIgnoreProperty()
        {
            var reader = Mock.Create <IDataReader>();

            Mock
            .Arrange(() => reader.Read())
            .Returns(true);
            Mock
            .Arrange(() => reader.GetString(0))
            .Returns("name-value");

            var mapper =
                new DataReaderMapperBuilder <IgnoreMapperTest>("ShouldIgnoreProperty")
                .AutoMap()
                .Ignore("name")
                .Build();

            Assert.That(() => mapper.Map(reader).Name, Is.Null);
            //Dynamics_.AssemblyBuilder.Save("nohros.tests.dll");
        }
Exemple #23
0
        public void ShouldMapArrayOfKeyValuePairs()
        {
            var builder = new SqlConnectionStringBuilder();

            builder.DataSource = "itaucaj";
            builder.UserID     = "nohros";
            builder.Password   = "******";

            using (var conn = new SqlConnection(builder.ToString()))
                using (var cmd = new SqlCommand("exec fila_get_by_id @fila_id = 1", conn)) {
                    conn.Open();
                    using (var reader = cmd.ExecuteReader()) {
                        var mapper = new DataReaderMapperBuilder <KeyedMapperTest>()
                                     .Map(
                            new KeyValuePair <string, string>[] {
                            new KeyValuePair <string, string>("name", "usuario_nome")
                        })
                                     .Build();
                        Assert.That(mapper.Map(reader).Name, Is.EqualTo("nohros"));
                    }
                }
        }
Exemple #24
0
        public void should_be_thread_safe()
        {
            IDataReader reader = GetDataReader();

            var sync = new CountdownEvent(2);

            Action method = () => {
                var mapper =
                    new DataReaderMapperBuilder <IgnoreType>("shoud_map_to_a_constant")
                    .Map("name", TypeMaps.String("myname"))
                    .Build();
                sync.Signal();
                Assert.That(mapper.Map(reader).Name, Is.EqualTo("myname"));
            };

            Action parallel = () => {
                ThreadPool.QueueUserWorkItem(state => method());
                ThreadPool.QueueUserWorkItem(state => method());
            };

            Assert.That(() => parallel(), Throws.Nothing);
            sync.Wait();
        }