use of io.smallrye.graphql.client.InvalidResponseException in project smallrye-graphql by smallrye.
the class NestedBehavior method shouldFailToSetMissingPrimitiveField.
@Test
void shouldFailToSetMissingPrimitiveField() {
fixture.returnsData("'call':{'foo':'a'}");
MissingPrimitiveFieldApi api = fixture.build(MissingPrimitiveFieldApi.class);
InvalidResponseException thrown = catchThrowableOfType(api::call, InvalidResponseException.class);
then(thrown).hasMessage("missing boolean value for " + MissingPrimitiveFieldApi.class.getName() + "#call.bar");
}
use of io.smallrye.graphql.client.InvalidResponseException in project smallrye-graphql by smallrye.
the class NestedBehavior method shouldFailToAssignNumberToObjectListQuery.
@Test
void shouldFailToAssignNumberToObjectListQuery() {
fixture.returnsData("'greetings':[123,456.78]");
ObjectListApi api = fixture.build(ObjectListApi.class);
InvalidResponseException thrown = catchThrowableOfType(api::greetings, InvalidResponseException.class);
then(thrown).hasMessage("invalid " + Greeting.class.getName() + " value for " + ObjectListApi.class.getName() + "#greetings[0]: 123");
}
use of io.smallrye.graphql.client.InvalidResponseException in project smallrye-graphql by smallrye.
the class NestedBehavior method shouldFailToAssignBooleanToSet.
@Test
void shouldFailToAssignBooleanToSet() {
fixture.returnsData("'greetings':true");
StringSetApi api = fixture.build(StringSetApi.class);
InvalidResponseException thrown = catchThrowableOfType(api::greetings, InvalidResponseException.class);
then(thrown).hasMessage("invalid java.util.Set<java.lang.String> value for " + StringSetApi.class.getName() + "#greetings: true");
}
use of io.smallrye.graphql.client.InvalidResponseException in project smallrye-graphql by smallrye.
the class VertxTypesafeGraphQLClientProxy method executeSingleResultOperationOverWebsocket.
private Uni<Object> executeSingleResultOperationOverWebsocket(MethodInvocation method, JsonObject request) {
AtomicReference<String> operationId = new AtomicReference<>();
AtomicReference<WebSocketSubprotocolHandler> handlerRef = new AtomicReference<>();
Uni<String> rawUni = Uni.createFrom().emitter(rawEmitter -> {
webSocketHandler().subscribe().with((handler) -> {
handlerRef.set(handler);
operationId.set(handler.executeUni(request, rawEmitter));
});
});
return rawUni.onCancellation().invoke(() -> {
String id = operationId.get();
log.trace("Received onCancellation on operation ID " + id);
if (id != null) {
handlerRef.get().cancelMulti(id);
} else {
log.trace("Received onCancellation on an operation that does not have an ID yet");
}
}).onItem().transform(data -> {
Object object = new ResultBuilder(method, data).read();
if (object != null) {
return object;
} else {
throw new InvalidResponseException("Couldn't find neither data nor errors in the response: " + data);
}
});
}
use of io.smallrye.graphql.client.InvalidResponseException in project smallrye-graphql by smallrye.
the class VertxTypesafeGraphQLClientProxy method executeSubscriptionOverWebsocket.
private Multi<Object> executeSubscriptionOverWebsocket(MethodInvocation method, JsonObject request) {
AtomicReference<String> operationId = new AtomicReference<>();
AtomicReference<WebSocketSubprotocolHandler> handlerRef = new AtomicReference<>();
Multi<String> rawMulti = Multi.createFrom().emitter(rawEmitter -> {
webSocketHandler().subscribe().with(handler -> {
handlerRef.set(handler);
operationId.set(handler.executeMulti(request, rawEmitter));
});
});
return rawMulti.onCancellation().invoke(() -> {
handlerRef.get().cancelMulti(operationId.get());
}).onItem().transform(data -> {
Object object = new ResultBuilder(method, data).read();
if (object != null) {
return object;
} else {
throw new InvalidResponseException("Couldn't find neither data nor errors in the response: " + data);
}
});
}
Aggregations