Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ private JsonObject _formatJsonVariables() {
varBuilder.add(k, (Long) v);
} else if (v instanceof Double) {
varBuilder.add(k, (Double) v);
} else if (v instanceof Enum<?>) {
varBuilder.add(k, ((Enum<?>) v).name());
} else if (v == null) {
varBuilder.addNull(k);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,18 @@ public void testComplexTypesToJson() {
map.put("ids", arr);
request.setVariable("key", map);
assertEquals("{\"query\":\"example\",\"variables\":{\"key\":{\"ids\":[1,2]}}}", request.toJson());

request.setVariable("key", new TestRecord(TestEnum.TEST));
assertEquals("{\"query\":\"example\",\"variables\":{\"key\":{\"enumValue\":\"TEST\"}}}", request.toJson());

request.setVariable("key", TestEnum.TEST);
assertEquals("{\"query\":\"example\",\"variables\":{\"key\":\"TEST\"}}", request.toJson());
}

public record TestRecord(TestEnum enumValue) {
}

public enum TestEnum {
TEST
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package io.smallrye.graphql.tests.client.dynamic;

public enum DummyEnum {
ZERO,
ONE,
TWO,
THREE
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,13 @@ public Dummy queryWithArgument2(@Name(value = "obj") DummyObject obj) {
return ret;
}

@Query
public Dummy queryWithArgument3(@Name(value = "obj") DummyEnum obj) {
Dummy ret = new Dummy();
ret.setInteger(obj.ordinal());
return ret;
}

@Query
public Dummy withRenamedField() {
Dummy ret = new Dummy();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public static WebArchive deployment() {
"dummy/mp-graphql/url=http://localhost:9090/client-injection-test/graphql\n" +
"dummy/mp-graphql/header/My-Custom-Header=Header-Value"),
"META-INF/microprofile-config.properties")
.addClasses(DynamicClientApi.class, DummyObject.class, Dummy.class);
.addClasses(DynamicClientApi.class, DummyObject.class, DummyEnum.class, Dummy.class);
}

@Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public abstract class DynamicClientSingleOperationsTestBase {
@Deployment
public static WebArchive deployment() {
return ShrinkWrap.create(WebArchive.class, "integration-test.war")
.addClasses(DynamicClientApi.class, DummyObject.class, Dummy.class);
.addClasses(DynamicClientApi.class, DummyObject.class, DummyEnum.class, Dummy.class);
}

@ArquillianResource
Expand Down Expand Up @@ -96,6 +96,17 @@ public void testStringQueryWithObject() throws ExecutionException, InterruptedEx
assertEquals("a", data.getJsonObject("queryWithArgument2").getJsonObject("dummyObject").getString("a"));
}

@Test
public void testStringQueryWithEnum() throws ExecutionException, InterruptedException {
Map<String, Object> vars = new HashMap<>();
vars.put("x", DummyEnum.TWO);
JsonObject data = client
.executeSync("query($x: DummyEnum) {queryWithArgument3(obj: $x){integer}}", vars)
.getData();
System.out.println(data);
assertEquals(2, data.getJsonObject("queryWithArgument3").getInt("integer"));
}

@Test
public void testStringQueryWithMultipleOperations() throws ExecutionException, InterruptedException {
String query = "query a {simple{integer}} " +
Expand Down
Loading