Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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" });
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }