Ejemplo n.º 1
0
        public DefaultBinder(IEnumerable<ITypeConverter> typeConverters, IEnumerable<IBodyDeserializer> bodyDeserializers, IFieldNameConverter fieldNameConverter, BindingDefaults defaults)
        {
            if (typeConverters == null)
            {
                throw new ArgumentNullException("typeConverters");
            }

            if (bodyDeserializers == null)
            {
                throw new ArgumentNullException("bodyDeserializers");
            }

            if (fieldNameConverter == null)
            {
                throw new ArgumentNullException("fieldNameConverter");
            }

            if (defaults == null)
            {
                throw new ArgumentNullException("defaults");
            }

            this.typeConverters = typeConverters;
            this.bodyDeserializers = bodyDeserializers;
            this.fieldNameConverter = fieldNameConverter;
            this.defaults = defaults;
        }
 public StringListBinder(IEnumerable<IBodyDeserializer> bodyDeserializers, IFieldNameConverter fieldNameConverter,
     BindingDefaults defaults, IEnumerable<ITypeConverter> typeConverters)
 {
     this.bodyDeserializers = bodyDeserializers;
     this.fieldNameConverter = fieldNameConverter;
     this.defaults = defaults;
     this.typeConverters = typeConverters;
 }
Ejemplo n.º 3
0
        public DefaultBinderFixture()
        {
            this.passthroughNameConverter = A.Fake<IFieldNameConverter>();
            A.CallTo(() => this.passthroughNameConverter.Convert(null)).WithAnyArguments()
                .ReturnsLazily(f => (string)f.Arguments[0]);

            this.emptyDefaults = A.Fake<BindingDefaults>();
            A.CallTo(() => this.emptyDefaults.DefaultBodyDeserializers).Returns(new IBodyDeserializer[] { });
            A.CallTo(() => this.emptyDefaults.DefaultTypeConverters).Returns(new ITypeConverter[] { });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="T:System.Object"/> class.
        /// </summary>
        public DefaultBinderFixture()
        {
            this.passthroughNameConverter = A.Fake <IFieldNameConverter>();
            A.CallTo(() => this.passthroughNameConverter.Convert(null)).WithAnyArguments()
            .ReturnsLazily(f => (string)f.Arguments[0]);

            this.emptyDefaults = A.Fake <BindingDefaults>();
            A.CallTo(() => this.emptyDefaults.DefaultBodyDeserializers).Returns(new IBodyDeserializer[] { });
            A.CallTo(() => this.emptyDefaults.DefaultTypeConverters).Returns(new ITypeConverter[] { });
        }
Ejemplo n.º 5
0
        /// <summary>
        /// DefaultBinder constructor
        /// </summary>
        /// <param name="fieldNameConverter">used to convert field names to property names</param>
        public DefaultBinder(IFieldNameConverter fieldNameConverter)
        {
            if (fieldNameConverter == null)
            {
                throw new ArgumentNullException("fieldNameConverter");
            }

            this.fieldNameConverter  = fieldNameConverter;
            BlackListedPropertyNames = new List <string>();
        }
Ejemplo n.º 6
0
        public static GraphTypesLookup Create(
            IEnumerable <IGraphType> types,
            IEnumerable <DirectiveGraphType> directives,
            Func <Type, IGraphType> resolveType,
            IFieldNameConverter fieldNameConverter)
        {
            var lookup = new GraphTypesLookup
            {
                FieldNameConverter = fieldNameConverter ?? new CamelCaseFieldNameConverter()
            };

            var ctx = new TypeCollectionContext(resolveType, (name, graphType, context) =>
            {
                if (lookup[name] == null)
                {
                    lookup.AddType(graphType, context);
                }
            });

            foreach (var type in types)
            {
                lookup.AddType(type, ctx);
            }

            var introspectionType = typeof(SchemaIntrospection);

            lookup.HandleField(introspectionType, SchemaIntrospection.SchemaMeta, ctx);
            lookup.HandleField(introspectionType, SchemaIntrospection.TypeMeta, ctx);
            lookup.HandleField(introspectionType, SchemaIntrospection.TypeNameMeta, ctx);

            foreach (var directive in directives)
            {
                if (directive.Arguments == null)
                {
                    continue;
                }

                foreach (var arg in directive.Arguments)
                {
                    if (arg.ResolvedType != null)
                    {
                        arg.ResolvedType = lookup.ConvertTypeReference(directive, arg.ResolvedType);
                    }
                    else
                    {
                        arg.ResolvedType = lookup.BuildNamedType(arg.Type, ctx.ResolveType);
                    }
                }
            }

            lookup.ApplyTypeReferences();

            return(lookup);
        }
Ejemplo n.º 7
0
        public DefaultBinder(IFieldNameConverter fieldNameConverter)
        {
            if (fieldNameConverter == null)
            {
                throw new ArgumentNullException("fieldNameConverter");
            }

            this.fieldNameConverter = fieldNameConverter;
            IgnoreErrors = true;
            BlackListedPropertyNames = new List<string>();
        }
Ejemplo n.º 8
0
        public DefaultBinderFixture()
        {
            this.defaultBindingContext = new BindingContext();

            this.passthroughNameConverter = A.Fake<IFieldNameConverter>();
            A.CallTo(() => this.passthroughNameConverter.Convert(null)).WithAnyArguments()
                .ReturnsLazily(f => (string)f.Arguments[0]);

            this.emptyDefaults = A.Fake<BindingDefaults>();
            A.CallTo(() => this.emptyDefaults.DefaultBodyDeserializers).Returns(new IBodyDeserializer[] { });
            A.CallTo(() => this.emptyDefaults.DefaultTypeConverters).Returns(new ITypeConverter[] { });

            this.serializer = new JavaScriptSerializer();
            this.serializer.RegisterConverters(JsonSettings.Converters);
        }
Ejemplo n.º 9
0
        public static GraphTypesLookup Create(
            IEnumerable <IGraphType> types,
            IEnumerable <DirectiveGraphType> directives,
            Func <Type, IGraphType> resolveType,
            IFieldNameConverter fieldNameConverter)
        {
            var lookup = new GraphTypesLookup();

            lookup.FieldNameConverter = fieldNameConverter ?? new CamelCaseFieldNameConverter();

            var ctx = new TypeCollectionContext(resolveType, (name, graphType, context) =>
            {
                if (lookup[name] == null)
                {
                    lookup.AddType(graphType, context);
                }
            });

            types.Apply(type =>
            {
                lookup.AddType(type, ctx);
            });

            var introspectionType = typeof(SchemaIntrospection);

            lookup.HandleField(introspectionType, SchemaIntrospection.SchemaMeta, ctx);
            lookup.HandleField(introspectionType, SchemaIntrospection.TypeMeta, ctx);
            lookup.HandleField(introspectionType, SchemaIntrospection.TypeNameMeta, ctx);

            directives.Apply(directive =>
            {
                directive.Arguments?.Apply(arg =>
                {
                    if (arg.ResolvedType != null)
                    {
                        return;
                    }

                    arg.ResolvedType = lookup.BuildNamedType(arg.Type, ctx.ResolveType);
                });
            });

            return(lookup);
        }
Ejemplo n.º 10
0
        public ISchema build_schema(IFieldNameConverter converter = null)
        {
            var schema = new Schema();

            schema.FieldNameConverter = converter ?? new CamelCaseFieldNameConverter();

            var person = new ObjectGraphType();

            person.Name = "Person";
            person.Field("Name", new StringGraphType());

            var query = new ObjectGraphType();

            query.Name = "Query";
            query.Field("PeRsoN", person, resolve: ctx =>
            {
                return(new Person {
                    Name = "Quinn"
                });
            });

            schema.Query = query;
            return(schema);
        }
Ejemplo n.º 11
0
        private IBinder GetBinder(IEnumerable <ITypeConverter> typeConverters = null, IEnumerable <IBodyDeserializer> bodyDeserializers = null, IFieldNameConverter nameConverter = null, BindingDefaults bindingDefaults = null)
        {
            var converters    = typeConverters ?? new ITypeConverter[] { };
            var deserializers = bodyDeserializers ?? new IBodyDeserializer[] { };
            var converter     = nameConverter ?? this.passthroughNameConverter;
            var defaults      = bindingDefaults ?? this.emptyDefaults;

            return(new DefaultBinder(converters, deserializers, converter, defaults));
        }
Ejemplo n.º 12
0
        public DefaultBinder(IEnumerable <ITypeConverter> typeConverters, IEnumerable <IBodyDeserializer> bodyDeserializers, IFieldNameConverter fieldNameConverter, BindingDefaults defaults)
        {
            if (typeConverters == null)
            {
                throw new ArgumentNullException("typeConverters");
            }

            if (bodyDeserializers == null)
            {
                throw new ArgumentNullException("bodyDeserializers");
            }

            if (fieldNameConverter == null)
            {
                throw new ArgumentNullException("fieldNameConverter");
            }

            if (defaults == null)
            {
                throw new ArgumentNullException("defaults");
            }

            this.typeConverters     = typeConverters;
            this.bodyDeserializers  = bodyDeserializers;
            this.fieldNameConverter = fieldNameConverter;
            this.defaults           = defaults;
        }
Ejemplo n.º 13
0
        private IBinder GetBinder(IEnumerable<ITypeConverter> typeConverters = null, IEnumerable<IBodyDeserializer> bodyDeserializers = null, IFieldNameConverter nameConverter = null, BindingDefaults bindingDefaults = null)
        {
            var converters = typeConverters ?? new ITypeConverter[] { };
            var deserializers = bodyDeserializers ?? new IBodyDeserializer[] { };
            var converter = nameConverter ?? this.passthroughNameConverter;
            var defaults = bindingDefaults ?? this.emptyDefaults;

            return new DefaultBinder(converters, deserializers, converter, defaults);
        }