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>(); })); }
public Query(CharacterRepository repository) { _repository = repository ?? throw new System.ArgumentNullException(nameof(repository)); }