Beispiel #1
0
        public void Can_Map_Top_Value_To_Deep_Value_Between_Objects()
        {
            var mapping = new TypeBindingBuilder <Source, Target>()
                          .Bind(t => t.Nested.FlatValue, s => s.FlatValue)
                          .BuildBinding()
                          .BuildMapping();

            var source = new Source {
                FlatValue = "Hello World"
            };
            var target = new Target();

            var sourceReader = new ObjectDataModelReader <Source>(source);
            var targetWriter = new ObjectDataModelWriter <Target>(target);

            mapping.Run(sourceReader, targetWriter);

            Assert.AreEqual(source.FlatValue, target.Nested.FlatValue);
        }
Beispiel #2
0
        public void Converts_Field_Values()
        {
            var mapping = new TypeBindingBuilder <Source, Target>()
                          .Bind(t => t.ValueType, s => s.ValueType, value => value + 10)
                          .BuildBinding()
                          .BuildMapping();

            var source = new Source {
                ValueType = 10
            };
            var target = new Target();

            var sourceReader = new ObjectDataModelReader <Source>(source);
            var targetWriter = new ObjectDataModelWriter <Target>(target);

            mapping.Run(sourceReader, targetWriter);

            Assert.AreEqual(source.ValueType + 10, target.ValueType);
        }
Beispiel #3
0
        public void Can_Map_With_Nulls_And_Leave_Defaults()
        {
            var mapping = new TypeBindingBuilder <Source, Target>()
                          .Bind(t => t.Nested.FlatValue, s => s.Nested.FlatValue) // will be null when mapped
                          .Bind(t => t.ValueType, s => s.ValueType)               // will be mapped after the null is hit
                          .BuildBinding()
                          .BuildMapping();

            var source = new Source {
                ValueType = 5
            };
            var target = new Target();

            var sourceReader = new ObjectDataModelReader <Source>(source);
            var targetWriter = new ObjectDataModelWriter <Target>(target);

            mapping.Run(sourceReader, targetWriter);

            Assert.IsNull(target.Nested);
            Assert.AreEqual(source.ValueType, target.ValueType);
        }
Beispiel #4
0
        public void Ignores_Conversion_Failure()
        {
            var mapping = new TypeBindingBuilder <Source, Target>()
                          .Bind(
                t => t.ValueType,
                s => s.ValueType,
                (int @in, out int @out) => { @out = @in; return(false); }
                )
                          .BuildBinding()
                          .BuildMapping();

            var source = new Source {
                ValueType = 10
            };
            var target = new Target();

            var sourceReader = new ObjectDataModelReader <Source>(source);
            var targetWriter = new ObjectDataModelWriter <Target>(target);

            mapping.Run(sourceReader, targetWriter);

            Assert.AreEqual(default, target.ValueType);