Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vimalrajselvam/test-graphql-java
Easy Graphql Testing in Java
https://github.com/vimalrajselvam/test-graphql-java
api-testing graphql graphql-java java
Last synced: 25 days ago
JSON representation
Easy Graphql Testing in Java
- Host: GitHub
- URL: https://github.com/vimalrajselvam/test-graphql-java
- Owner: vimalrajselvam
- License: mit
- Created: 2019-06-01T05:41:42.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-11-16T12:23:34.000Z (about 2 years ago)
- Last Synced: 2024-05-20T13:33:49.542Z (7 months ago)
- Topics: api-testing, graphql, graphql-java, java
- Language: Java
- Size: 14.6 KB
- Stars: 25
- Watchers: 5
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-graphql-java - test-graphql-java
README
[![Build Status](https://travis-ci.org/vimalrajselvam/test-graphql-java.svg?branch=master)](https://travis-ci.org/vimalrajselvam/test-graphql-java) [![Maven Central](https://img.shields.io/maven-central/v/com.vimalselvam/test-graphql-java.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.vimalselvam%22%20AND%20a:%22test-graphql-java%22)
# Test GraphQL Java
This library let's you to convert the `GraphQL` file to a simple string which can be used as a request payload using any HTTP client library.
I've written this library for the simple `GraphQL` API Testing. There is a [graphql-java](https://github.com/graphql-java/graphql-java) library which let's you to implement `GraphQL` server in Java. My main goal is not to introduce Spring Boot just for the sake of testing the `GraphQL` API. I wanted to keep it simple!
To use this library, you can download from `Maven`:
```xml
com.vimalselvam
test-graphql-java
1.0.0```
I don't use `Gradle`, but it should be simple to add this as a gradle dependency.
## Getting Started
There are two ways to load the `GraphQL` file.
- using `InputStream`:
```java
InputStream iStream = getClass().getResourceAsStream("/graphql/pokemon.graphql");
```Here the `pokemon.graphql` file in under `src/test/resources/graphql/pokemon.graphql`.
- using `File`:
```java
File file = new File("src/test/resources/graphql/pokemon.graphql");
```Once you read the file, just pass it to `GraphqlTemplate` class to parse as follows:
```java
String graphqlPayload = GraphqlTemplate.parseGraphql(file, variables);
```Here the `variables` is the `com.fasterxml.jackson.databind.node.ObjectNode`. If no variables, you just pass `null`.
To build the `variables`, you can do:
```java
ObjectNode variables = new ObjectMapper().createObjectNode();
variables.put("name", "Pikachu");
```Then you can use any HTTP Client and pass the `graphqlPayload` string as a body.
A sample test can be found [here](https://github.com/vimalrajselvam/test-graphql-java/blob/master/src/test/java/com/vimalselvam/graphql/TestClass.java)