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(); }
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); }
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"); }
public override void Bind(ITypeAccessor targetAccessor, IMember targetMember, ValueBinderContext valueBinderContext) { GetSourceNameOrDefault(targetMember, valueBinderContext.TargetConfiguration); }