Exemple #1
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");
        }