示例#1
0
        public void does_not_bind_when_concrete_enumerable_type_cannot_be_found()
        {
            IEnumerableValueBinder valueBinder    = new IEnumerableValueBinder(new Configuration());
            ITypeAccessor          typeAccessor   = TypeAccessorFactory.Create(typeof(Test));
            IMember            member             = typeAccessor.GetMembers().First();
            object             source             = new { };
            Test               target             = new Test();
            ValueBinderContext valueBinderContext = CreateContext(source, target);

            valueBinder.Bind(typeAccessor, member, valueBinderContext);

            typeAccessor.GetValue(target, member.Name).MustBeNull();
        }
示例#2
0
        public void bind_does_not_overwrite_with_null_when_no_source_value_found()
        {
            ITypeAccessor typeAccessor = TypeAccessorFactory.Create(typeof(Test));
            object        source       = new { };
            Test          target       = new Test
            {
                Foo = "foo"
            };
            IMember            member             = typeAccessor.GetMembers().First();
            ValueBinderContext valueBinderContext = CreateContext(source, target);

            new DefaultValueBinder(new Configuration()).Bind(typeAccessor, member, valueBinderContext);

            // check that the binder doesn't write null when it doesn't find a source value
            typeAccessor.GetValue(target, member).MustEqual(target.Foo);
        }
示例#3
0
        public void binds_to_array()
        {
            Configuration          configuration = new Configuration();
            IEnumerableValueBinder valueBinder   = new IEnumerableValueBinder(new Configuration());
            ITypeAccessor          typeAccessor  = TypeAccessorFactory.Create(typeof(TestWithArray));
            IMember member = typeAccessor.GetMembers().First();
            object  source = new
            {
                Foo = "a-foo-value"
            };
            TestWithArray      target             = new TestWithArray();
            ValueBinderContext valueBinderContext = new ValueBinderContext(source, target, A.Fake <TargetConfiguration>(), new DefaultValueProvider(), new ObjectMapper(configuration));

            valueBinder.Bind(typeAccessor, member, valueBinderContext);

            target.Tests[0].Foo.MustEqual("a-foo-value");
        }
示例#4
0
 public override void Bind(ITypeAccessor targetAccessor, IMember targetMember, ValueBinderContext valueBinderContext)
 {
     GetSourceNameOrDefault(targetMember, valueBinderContext.TargetConfiguration);
 }