public async Task Get_companies_paging()
    {
        await startTask;
        var   after = 1;
        var   query = @"
query {
  companiesConnection(first:2, after:""" + after + @""") {
    edges {
      cursor
      node {
        id
      }
    }
    pageInfo {
      endCursor
      hasNextPage
    }
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        Approvals.VerifyJson(await response.Content.ReadAsStringAsync());
    }
Example #2
0
    public async Task Get_companies_paging()
    {
        var after = 1;
        var query = @"
query {
  companiesConnection(first:2, after:""" + after + @""") {
    edges {
      cursor
      node {
        id
      }
    }
    pageInfo {
      endCursor
      hasNextPage
    }
  }
}";

        using (var response = await ClientQueryExecutor.ExecuteGet(client, query))
        {
            response.EnsureSuccessStatusCode();
            var result = JObject.Parse(await response.Content.ReadAsStringAsync());
            var page   = result.SelectToken("..data..companiesConnection..edges[0].cursor")
                         .Value <string>();
            Assert.NotEqual(after.ToString(), page);
        }
    }
Example #3
0
    public async Task Get_employee_summary()
    {
        var query = @"
query {
  employeeSummary {
    companyId
    averageAge
  }
}";

        using (var response = await ClientQueryExecutor.ExecuteGet(client, query))
        {
            response.EnsureSuccessStatusCode();
            var result   = JObject.Parse(await response.Content.ReadAsStringAsync());
            var expected = JObject.FromObject(new
            {
                data = new
                {
                    employeeSummary = new[]
                    {
                        new { companyId = 1, averageAge = 28.0 },
                        new { companyId = 4, averageAge = 34.0 }
                    }
                }
            });
            Assert.Equal(expected.ToString(), result.ToString());
        }
    }
    public async Task Get_complex_query_result()
    {
        await startTask;
        var   query = @"
query {
  employees (
    where: [
      {groupedExpressions: [
        {path: ""content"", comparison: ""contains"", value: ""4"", connector: ""or""},

          { path: ""content"", comparison: ""contains"", value: ""2""}
      ], connector: ""and""},
      {path: ""age"", comparison: ""greaterThanOrEqual"", value: ""31""}
    ]
  ) {
    id
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        var result = await response.Content.ReadAsStringAsync();

        Assert.Contains("{\"employees\":[{\"id\":3},{\"id\":5}]}", result);
        response.EnsureSuccessStatusCode();
    }
    public async Task Get_null_query()
    {
        var response = await ClientQueryExecutor.ExecuteGet(client);

        Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        var result = await response.Content.ReadAsStringAsync();

        Assert.Contains("A query is required.", result);
    }
    public void Simple()
    {
        var query = @"
query ($id: String!)
{
  companies(ids:[$id])
  {
    id
  }
}";

        Approvals.Verify(ClientQueryExecutor.CompressQuery(query));
    }
Example #7
0
    static GraphQlControllerTests()
    {
        var server = GetTestServer();

        client    = server.CreateClient();
        webSocket = server.CreateWebSocketClient();
        webSocket.ConfigureRequest =
            request =>
        {
            var headers = request.Headers;
            headers["Sec-WebSocket-Protocol"] = "graphql-ws";
        };
        clientQueryExecutor = new(JsonConvert.SerializeObject);
    }
    public async Task Get()
    {
        var query = @"
{
  companies
  {
    id
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        await Verifier.Verify(await response.Content.ReadAsStringAsync());
    }
    public async Task Get_employee_summary()
    {
        var query = @"
query {
  employeeSummary {
    companyId
    averageAge
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        await Verifier.Verify(await response.Content.ReadAsStringAsync());
    }
    public async Task Get()
    {
        var query    = @"
{
  companies
  {
    id
  }
}";
        var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        var result = await response.Content.ReadAsStringAsync();

        Assert.Equal("{\"data\":{\"companies\":[{\"id\":1},{\"id\":4},{\"id\":6},{\"id\":7}]}}", result);
    }
    public async Task Get()
    {
        await startTask;
        var   query = @"
{
  companies
  {
    id
  }
}";

        using var response = await ClientQueryExecutor.ExecuteGet(client, query);

        response.EnsureSuccessStatusCode();
        Approvals.VerifyJson(await response.Content.ReadAsStringAsync());
    }
Example #12
0
    public async Task Get_employee_summary()
    {
        await startTask;
        var   query = @"
query {
  employeeSummary {
    companyId
    averageAge
  }
}";

        using (var response = await ClientQueryExecutor.ExecuteGet(client, query))
        {
            response.EnsureSuccessStatusCode();
            Approvals.VerifyJson(await response.Content.ReadAsStringAsync());
        }
    }
Example #13
0
    public async Task Post()
    {
        var query = @"
{
  companies
  {
    id
  }
}";

        using (var response = await ClientQueryExecutor.ExecutePost(client, query))
        {
            var result = await response.Content.ReadAsStringAsync();

            Assert.Contains(
                "{\"companies\":[{\"id\":1},{\"id\":4},{\"id\":6},{\"id\":7}]}",
                result);
            response.EnsureSuccessStatusCode();
        }
    }
    public async Task Get_variable()
    {
        var query     = @"
query ($id: ID!)
{
  companies(ids:[$id])
  {
    id
  }
}";
        var variables = new
        {
            id = "1"
        };

        using var response = await ClientQueryExecutor.ExecuteGet(client, query, variables);

        response.EnsureSuccessStatusCode();
        await Verifier.Verify(await response.Content.ReadAsStringAsync());
    }
    public async Task Post_variable()
    {
        var query     = @"
query ($id: ID!)
{
  companies(ids:[$id])
  {
    id
  }
}";
        var variables = new
        {
            id = "1"
        };
        var response = await ClientQueryExecutor.ExecutePost(client, query, variables);

        var result = await response.Content.ReadAsStringAsync();

        Assert.Contains("{\"companies\":[{\"id\":1}]}", result);
        response.EnsureSuccessStatusCode();
    }
    public async Task Get_single()
    {
        await startTask;
        var   query     = @"
query ($id: ID!)
{
  company(id:$id)
  {
    id
  }
}";
        var   variables = new
        {
            id = "1"
        };

        using var response = await ClientQueryExecutor.ExecuteGet(client, query, variables);

        response.EnsureSuccessStatusCode();
        Approvals.VerifyJson(await response.Content.ReadAsStringAsync());
    }
    public async Task Get_single_not_found()
    {
        var query     = @"
query ($id: ID!)
{
  company(id:$id)
  {
    id
  }
}";
        var variables = new
        {
            id = "99"
        };

        using var response = await ClientQueryExecutor.ExecuteGet(client, query, variables);

        var result = await response.Content.ReadAsStringAsync();

        Assert.Contains("Not found", result);
    }
    public async Task Get_single()
    {
        var query     = @"
query ($id: ID!)
{
  company(id:$id)
  {
    id
  }
}";
        var variables = new
        {
            id = "1"
        };

        var response = await ClientQueryExecutor.ExecuteGet(client, query, variables);

        response.EnsureSuccessStatusCode();
        var result = await response.Content.ReadAsStringAsync();

        Assert.Contains(@"{""data"":{""company"":{""id"":1}}}", result);
    }