aldettinger commented on code in PR #3919: URL: https://github.com/apache/camel-quarkus/pull/3919#discussion_r935738514
########## integration-tests/google-pubsub/src/main/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubResource.java: ########## @@ -64,7 +82,95 @@ public Response sendPojoToTopic(String fruitName) { @Produces(MediaType.APPLICATION_JSON) public Response consumePojoFromTopic() { Object response = consumerTemplate - .receiveBody("google-pubsub:{{project.id}}:{{subscription.name}}?synchronousPull=true", 5000L); + .receiveBody("google-pubsub:{{project.id}}:{{google-pubsub.subscription-name}}?synchronousPull=false", 5000L); return Response.ok(response).build(); } + + @Path("/sendToEndpoint") + @POST + public Response sentToEndpoint(String message, + @QueryParam("toEndpoint") String toEndpoint) + throws Exception { + producerTemplate.sendBody(toEndpoint, message); + return Response.created(URI.create("https://camel.apache.org")).build(); + } + + @Path("/getFromEndpoint") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String getSchedulerResult(@QueryParam("fromEndpoint") String fromEndpoint) throws Exception { + return consumerTemplate.receiveBody(fromEndpoint, 5000, String.class); + } + + @Path("receive/subscription/{subscriptionName}") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String receiveFromSubscription(@PathParam("subscriptionName") String subscriptionName) throws Exception { + return consumeEndpoint(subscriptionName, null); + } + + @Path("receive/subscriptionOrdering/{subscriptionName}") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String receiveFromSubscriptionOrdered(@PathParam("subscriptionName") String subscriptionName) throws Exception { + + return consumeEndpoint(subscriptionName, + "?messageOrderingEnabled=true&pubsubEndpoint=us-east1-pubsub.googleapis.com:443"); + } + + private String consumeEndpoint(String subscriptionName, String parameters) { + String url = "google-pubsub:{{project.id}}:{{" + subscriptionName + "}}"; + if (parameters != null && !"".equals(parameters)) { + url = url + parameters; + } + Exchange ex = consumerTemplate.receive(url, 5000); + + if (ex != null) { + return ex.getIn().getBody(String.class); + } + + return null; + } + + @Path("receive/mock/{mockName}") + @GET + @Produces(MediaType.TEXT_PLAIN) + public String mockReceive(@QueryParam("reset") boolean reset, @PathParam("mockName") String mockName) + throws Exception { + MockEndpoint mock = context.getEndpoint(mockName, MockEndpoint.class); + + List<String> results = mock.getExchanges().stream().map(e -> e.getIn().getBody(String.class)) + .collect(Collectors.toList()); + if (reset) { + mock.reset(); Review Comment: I vaguely remember that we had some flaky tests when using the `MockEndpoint.reset()` in the past. I wonder if we could use a distinct mock for each test scenario ? Not sure it's feasible in this case. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org