public async Task TestJson() { var organisations = new OrganisationTable("orgs"); var users = new UserTable(); var services = new ServiceCollection() .AddRoscoeSqlServer("Server=localhost;Database=test;"); using (var provider = services.BuildServiceProvider()) { var db = new RoscoeDb(provider); var schema = GraphQLSchema.Create(x => new RootQueryType(x, db)); var result = await schema.ExecuteRequestAsync(@"query { Organisations { id: Id Name UserNames Users { Id Name Organisation { Name } } } }", null); var json = JsonConvert.SerializeObject(result, Formatting.Indented); } }
public async Task TestStrongTypeQuery() { var services = new ServiceCollection() .AddRoscoeSqlServer("Server=localhost;Database=test;"); using (var provider = services.BuildServiceProvider()) { var db = new RoscoeDb(provider); var schema = GraphQLSchema.Create(x => new RootQueryType(x, db)); var result = await schema.QueryAsync(x => new { Organisations = x.Organisations() .Select(y => new { //Foo = y.Id().GetValue(null), Id = y.Id().Value() + "foo", Name = y.Name().Value(), Type = y.Type().Value(), Users = y.Users() .Select(z => new { Org = z.Organisation() .Select(a => new { Name = a.Name().Value(), }), }), }), }); /* * schema.ExecuteQueryAsync((x, dr) => new * { * Organisations = GraphQLSchemaOperations.Select(x.Organisations(), dr, (y, dr2) => new * { * Id = (string)y.Id.GetValue(dr2), * Name = (string)y.Name.GetValue(dr2), * Users = GraphQLSchemaOperations.Select(y.Users(), dr2, (z, dr3) => new * { * Org = GraphQLSchemaOperations.Select(z.Organisation(), dr3, (a, dr4) => new * { * Name = (string)a.Name().GetValue(dr4), * }, * }, * }), * }); * */ var json = JsonConvert.SerializeObject(result, Formatting.Indented); } }
public async Task Test1() { // arrange var organisation = new OrganisationRecord { Id = Guid.NewGuid(), Name = "Organisation 1", Users = new List <UserRecord> { new UserRecord { Id = Guid.NewGuid(), Name = "User 1", }, new UserRecord { Id = Guid.NewGuid(), Name = "User 2", }, }, }; var schema = GraphQLSchema.Create(x => new RootQueryType(x)); // act var result = await schema.ExecuteRequestAsync(@"query { Organisations { id: Id Name Users { Id Name } } }", null, null); // assert Assert.Equal( JsonConvert.SerializeObject(new { id = organisation.Id, organisation.Name, organisation.Users, }), JsonConvert.SerializeObject(result) ); }
public async Task Test2() { // arrange var organisation = new OrganisationRecord { Id = Guid.NewGuid(), Name = "Organisation 1", Users = new List <UserRecord> { new UserRecord { Id = Guid.NewGuid(), Name = "User 1", }, new UserRecord { Id = Guid.NewGuid(), Name = "User 2", }, }, }; var schema = GraphQLSchema.Create(x => new RootQueryType(x)); // act var result = await schema.ExecuteRequestAsync(@"query($values: [String!]!) { Values(values: $values) }", new Dictionary <string, object> { { "values", new[] { "one", "two" } }, }, null); // assert Assert.Equal( JsonConvert.SerializeObject(new { id = organisation.Id, organisation.Name, organisation.Users, }), JsonConvert.SerializeObject(result) ); }