public void RepositoryOwner_Repositories_Query() { var expression = new Query() .RepositoryOwner(login: "******") .Repositories(first: 30) .Edges .Select(x => x.Node) .Select(x => new { x.Id, x.Name, Owner = x.Owner.Select(o => new { o.Login }), x.IsFork, x.IsPrivate, }); string data = @"{ ""data"": { ""repositoryOwner"": { ""repositories"": { ""edges"": [ { ""node"": { ""id"": ""1234"", ""name"": ""Octokit.GraphQL.Core"", ""owner"": { ""login"": ""grokys"" }, ""isFork"": false, ""isPrivate"": false } }, { ""node"": { ""id"": ""2345"", ""name"": ""Avalonia"", ""owner"": { ""login"": ""grokys"" }, ""isFork"": true, ""isPrivate"": false } } ] } } } }"; var query = new QueryBuilder().Build(expression); var result = new ResponseDeserializer().Deserialize(query, data).ToList(); var item = result.ElementAt(0); Assert.Equal("1234", item.Id); Assert.Equal("Octokit.GraphQL.Core", item.Name); Assert.Equal("grokys", Queryable.Single(item.Owner).Login); Assert.False(item.IsFork); Assert.False(item.IsPrivate); item = result.ElementAt(1); Assert.Equal("2345", item.Id); Assert.Equal("Avalonia", item.Name); Assert.Equal("grokys", Queryable.Single(item.Owner).Login); Assert.True(item.IsFork); Assert.False(item.IsPrivate); }