public void can_bind_properties_to_A() { var binder = new Binder<A>(); var pairs = new KeyValuePair<string, string>[]{ new KeyValuePair<string,string>("AnInteger","2"), new KeyValuePair<string,string>("AString","abc") }; var a = binder.Bind(pairs); Assert.AreEqual(2, a.AnInteger); Assert.AreEqual("abc", a.AString); }
public void can_bind_fields_to_A() { var binder = new Binder<A>(); var pairs = new KeyValuePair<string, string>[]{ new KeyValuePair<string,string>("AnFieldInteger","10") }; var a = binder.Bind(pairs); Assert.AreEqual(10, a.AnFieldInteger); }
public void cannot_bind_inexistent_field_to_A() { var binder = new Binder<A>(); var pairs = new KeyValuePair<string, string>[]{ new KeyValuePair<string,string>("AnFieldIntegerInexistent","10") }; try { var a = binder.Bind(pairs); } catch (InexistentMemberBinderException ex) { Assert.AreEqual("AnFieldIntegerInexistent", ex.MemberName); throw; } }
public void cannot_bind_complex_data_to_A() { var binder = new Binder<A>(); var pairs = new KeyValuePair<string, string>[]{ new KeyValuePair<string,string>("AnList",null) }; try { var a = binder.Bind(pairs); } catch (NotPrimitiveMemberBinderException ex) { Assert.AreEqual(typeof(A).GetProperty("AnList"), ex.MemberInfo); throw; } }