public void Apply_should_do_nothing_when_creator_map_already_has_arguments_configured() { var subject = new NamedParameterCreatorMapConvention(); var classMap = new BsonClassMap <C>(); var constructorInfo = typeof(C).GetTypeInfo().GetConstructor(new[] { typeof(int) }); var creatorMap = classMap.MapConstructor(constructorInfo, "Y"); var originalArguments = creatorMap.Arguments; subject.Apply(creatorMap); creatorMap.Arguments.Should().BeSameAs(originalArguments); }
public void Apply_should_set_arguments_when_constructor_parameter_names_match_a_property() { var subject = new NamedParameterCreatorMapConvention(); var classMap = new BsonClassMap <C>(); var constructorInfo = typeof(C).GetTypeInfo().GetConstructor(new[] { typeof(string) }); var creatorMap = classMap.MapConstructor(constructorInfo); creatorMap.Arguments.Should().BeNull(); subject.Apply(creatorMap); creatorMap.Arguments.Cast <PropertyInfo>().Select(p => p.Name).Should().Equal(new[] { "P" }); }
public void Apply_should_do_nothing_when_constructor_parameter_name_does_not_match_any_property_or_field() { var subject = new NamedParameterCreatorMapConvention(); var classMap = new BsonClassMap <C>(); var constructorInfo = typeof(C).GetTypeInfo().GetConstructor(new[] { typeof(int) }); var creatorMap = classMap.MapConstructor(constructorInfo); creatorMap.Arguments.Should().BeNull(); subject.Apply(creatorMap); creatorMap.Arguments.Should().BeNull(); }
public void Apply_should_do_nothing_when_member_info_is_null() { var subject = new NamedParameterCreatorMapConvention(); var classMap = new BsonClassMap <C>(); var @delegate = (Func <int, C>)(y => new C(y)); var creatorMap = classMap.MapCreator(@delegate); creatorMap.Arguments.Should().BeNull(); creatorMap.MemberInfo.Should().BeNull(); subject.Apply(creatorMap); creatorMap.Arguments.Should().BeNull(); }