private static Schema CreateSchema()
        {
            CharacterRepository       repository = new CharacterRepository();
            Dictionary <Type, object> services   = new Dictionary <Type, object>();

            services[typeof(CharacterRepository)] = repository;
            services[typeof(Query)]    = new Query(repository);
            services[typeof(Mutation)] = new Mutation();


            Func <Type, object> serviceResolver = new Func <Type, object>(
                t =>
            {
                if (services.TryGetValue(t, out object s))
                {
                    return(s);
                }
                return(null);
            });

            Mock <IServiceProvider> serviceProvider =
                new Mock <IServiceProvider>(MockBehavior.Strict);

            serviceProvider.Setup(t => t.GetService(It.IsAny <Type>()))
            .Returns(serviceResolver);

            string schema = FileResource.Open("StarWars.graphql");

            return(Schema.Create(schema, c =>
            {
                c.RegisterServiceProvider(serviceProvider.Object);
                c.BindType <Query>();
                c.BindType <Human>();
                c.BindType <Droid>();
                c.BindType <Starship>();
            }));
        }
示例#2
0
 public Query(CharacterRepository repository)
 {
     _repository = repository
                   ?? throw new System.ArgumentNullException(nameof(repository));
 }