public void BuildsSchemaType() { var server = new Model().CreateServer(); var rawResult = server.Execute <JObject>(@"{ __type(name:""Query"") { name kind fields { name args { name type { name kind ofType { name kind } } } type { name kind fields { name type { name kind ofType { name kind } } } } } } }"); var expectedType = new ObjectType { Kind = ObjectKinds.Object, Name = "Query", Fields = new [] { new ObjectField { Name = "children", Type = ObjectType.ConnectionOf( new ObjectType { Name = "ChildObject", Kind = ObjectKinds.Object } ), Args = new [] { new FieldArgument { Name = "offset", Type = ObjectType.NonNullableOf(ObjectType.Int) }, new FieldArgument { Name = "count", Type = ObjectType.NonNullableOf(ObjectType.Int) }, new FieldArgument { Name = "orderBy", Type = new ObjectType { Name = "ChildObjectOrderBy", Kind = ObjectKinds.Enum } }, } } } }; var queryType = rawResult["__type"].ToObject <ObjectType>(); queryType.Should().BeEquivalentTo(expectedType); }