示例#1
0
            public void Mapper_respects_condition()
            {
                var _c1Called = false;
                var _c2Called = false;
                var config    = new MapperConfiguration(
                    cfg =>
                    cfg.CreateMap <EnumTestSource, EnumTestDest>()
                    .ForMember(
                        m => m.Prop1,
                        o =>
                {
                    o.Condition(
                        (_, srcProp, destProp) =>
                    {
                        _c1Called = true;
                        return(srcProp != null);
                    }
                        );
                    o.MapFrom(
                        (f, _) =>
                        f.Prop1?.Aggregate((current, next) => current | next)
                        );
                }
                        )
                    .ForMember(
                        m => m.Prop2,
                        o =>
                {
                    o.Condition(
                        (_, srcProp, destProp) =>
                    {
                        _c2Called = true;
                        return(srcProp != null);
                    }
                        );
                    o.MapFrom(
                        (f, _) =>
                        f.Prop2?.Aggregate((current, next) => current | next)
                        );
                }
                        )
                    );
                var src = new EnumTestSource {
                    Prop1 = new[] { Enum1.One }, Prop2 = null
                };
                var dest = config.CreateMapper().Map <EnumTestDest>(src); // will throw

                _c1Called.ShouldBeTrue();
                _c2Called.ShouldBeTrue();
            }
示例#2
0
 public void Mapper_respects_condition()
 {
     var _c1Called = false;
     var _c2Called = false;
     Mapper.CreateMap<EnumTestSource, EnumTestDest>()
         .ForMember(m => m.Prop1, o =>
         {
             o.Condition(c => { _c1Called = true; return !c.IsSourceValueNull; });
             o.ResolveUsing(f => f.Prop1.Aggregate((current, next) => current | next));
         })
         .ForMember(m => m.Prop2, o =>
         {
             o.Condition(c => { _c2Called = true; return !c.IsSourceValueNull; });
             o.ResolveUsing(f => f.Prop2.Aggregate((current, next) => current | next));
         });
     var src = new EnumTestSource { Prop1 = new[] { Enum1.One }, Prop2 = null };
     var dest = Mapper.Map<EnumTestDest>(src); // will throw
     Assert.IsTrue(_c1Called);
     Assert.IsTrue(_c2Called);
 }
示例#3
0
 public void Mapper_respects_condition()
 {
     var _c1Called = false;
     var _c2Called = false;
     var config = new MapperConfiguration(cfg => cfg.CreateMap<EnumTestSource, EnumTestDest>()
         .ForMember(m => m.Prop1, o =>
         {
             o.Condition((_, srcProp, destProp) => { _c1Called = true; return srcProp != null; });
             o.ResolveUsing(f => f.Prop1?.Aggregate((current, next) => current | next));
         })
         .ForMember(m => m.Prop2, o =>
         {
             o.Condition((_, srcProp, destProp) => { _c2Called = true; return srcProp != null; });
             o.ResolveUsing(f => f.Prop2?.Aggregate((current, next) => current | next));
         }));
     var src = new EnumTestSource { Prop1 = new[] { Enum1.One }, Prop2 = null };
     var dest = config.CreateMapper().Map<EnumTestDest>(src); // will throw
     _c1Called.ShouldBeTrue();
     _c2Called.ShouldBeTrue();
 }
示例#4
0
            public void Mapper_respects_condition()
            {
                var _c1Called = false;
                var _c2Called = false;

                Mapper.CreateMap <EnumTestSource, EnumTestDest>()
                .ForMember(m => m.Prop1, o =>
                {
                    o.Condition(c => { _c1Called = true; return(!c.IsSourceValueNull); });
                    o.ResolveUsing(f => f.Prop1 == null ? (object)null : f.Prop1.Aggregate((current, next) => current | next));
                })
                .ForMember(m => m.Prop2, o =>
                {
                    o.Condition(c => { _c2Called = true; return(!c.IsSourceValueNull); });
                    o.ResolveUsing(f => f.Prop2 == null ? (object)null : f.Prop2.Aggregate((current, next) => current | next));
                });
                var src = new EnumTestSource {
                    Prop1 = new[] { Enum1.One }, Prop2 = null
                };
                var dest = Mapper.Map <EnumTestDest>(src); // will throw

                _c1Called.ShouldBeTrue();
                _c2Called.ShouldBeTrue();
            }
示例#5
0
            public void Mapper_respects_condition()
            {
                var _c1Called = false;
                var _c2Called = false;

                Mapper.CreateMap <EnumTestSource, EnumTestDest>()
                .ForMember(m => m.Prop1, o =>
                {
                    o.Condition(c => { _c1Called = true; return(!c.IsSourceValueNull); });
                    o.MapFrom(f => f.Prop1.Aggregate((current, next) => current | next));
                })
                .ForMember(m => m.Prop2, o =>
                {
                    o.Condition(c => { _c2Called = true; return(!c.IsSourceValueNull); });
                    o.MapFrom(f => f.Prop2.Aggregate((current, next) => current | next));
                });
                var src = new EnumTestSource {
                    Prop1 = new[] { Enum1.One }, Prop2 = null
                };
                var dest = Mapper.Map <EnumTestDest>(src); // will throw

                Assert.IsTrue(_c1Called);
                Assert.IsTrue(_c2Called);
            }