This is an automated email from the ASF dual-hosted git repository.
ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 3545aa6b5d Google-pubsub: Improve google-pubsub test coverage with
MESSAGE_ID #4062
3545aa6b5d is described below
commit 3545aa6b5d517840528d22d230d6224eaf5ac239
Author: JiriOndrusek <[email protected]>
AuthorDate: Thu Sep 1 15:42:14 2022 +0200
Google-pubsub: Improve google-pubsub test coverage with MESSAGE_ID #4062
---
.../google/pubsub/it/GooglePubsubResource.java | 22 +++++++++++++++++++---
.../google/pubsub/it/GooglePubsubTest.java | 8 ++++++--
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git
a/integration-tests/google-pubsub/src/main/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubResource.java
b/integration-tests/google-pubsub/src/main/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubResource.java
index 449255fe72..2eda023642 100644
---
a/integration-tests/google-pubsub/src/main/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubResource.java
+++
b/integration-tests/google-pubsub/src/main/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubResource.java
@@ -17,7 +17,9 @@
package org.apache.camel.quarkus.component.google.pubsub.it;
import java.net.URI;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
import javax.inject.Inject;
@@ -30,10 +32,12 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
+import com.google.protobuf.Timestamp;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.Exchange;
import org.apache.camel.ProducerTemplate;
+import org.apache.camel.component.google.pubsub.GooglePubsubConstants;
import org.apache.camel.component.mock.MockEndpoint;
@Path("/google-pubsub")
@@ -58,10 +62,22 @@ public class GooglePubsubResource {
}
@GET
+ @Produces(MediaType.APPLICATION_JSON)
public Response consumeStringFromTopic() {
- Object response = consumerTemplate
-
.receiveBody("google-pubsub:{{project.id}}:{{google-pubsub.subscription-name}}?synchronousPull=true",
5000L);
- return Response.ok(response).build();
+ Exchange exchange = consumerTemplate
+
.receive("google-pubsub:{{project.id}}:{{google-pubsub.subscription-name}}?synchronousPull=true",
5000L);
+ //convert timestamp to long to avoid serializiong problems
+ Map<String, Object> retVal = new HashMap<>();
+ retVal.put("body", exchange.getIn().getBody(String.class));
+
retVal.putAll(exchange.getIn().getHeaders().entrySet().stream().collect(Collectors.toMap(
+ e -> e.getKey().replaceFirst("\\.", "_"),
+ e -> {
+ if (GooglePubsubConstants.PUBLISH_TIME.equals(e.getKey())
&& e.getValue() instanceof Timestamp) {
+ return ((Timestamp) e.getValue()).getSeconds() * 1000;
+ }
+ return e.getValue();
+ })));
+ return Response.ok(retVal).build();
}
@Path("/pojo")
diff --git
a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTest.java
b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTest.java
index 47c0d56937..10df7cce8f 100644
---
a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTest.java
+++
b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTest.java
@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
+import org.apache.camel.component.google.pubsub.GooglePubsubConstants;
import org.apache.camel.quarkus.test.support.google.GoogleCloudTestResource;
import org.hamcrest.Matchers;
import org.jboss.logging.Logger;
@@ -50,7 +51,10 @@ class GooglePubsubTest {
RestAssured.get("/google-pubsub")
.then()
.statusCode(200)
- .body(Matchers.is(message));
+ .body("body", Matchers.is(message))
+ .body(GooglePubsubConstants.MESSAGE_ID.replaceFirst("\\.",
"_"), Matchers.notNullValue())
+ .body(GooglePubsubConstants.PUBLISH_TIME.replaceFirst("\\.",
"_"), Matchers.notNullValue())
+ .body(GooglePubsubConstants.ACK_ID.replaceFirst("\\.", "_"),
Matchers.notNullValue());
}
@Test
@@ -242,7 +246,7 @@ class GooglePubsubTest {
.statusCode(201);
LOG.info("Message \"2\" was sent and should be Nacked.");
//wait to be sure that the nacked message was not delivered
- Thread.sleep(1000);
+ Thread.sleep(5000);
RestAssured.given()
.get("/google-pubsub/receive/mock/" +
GooglePubSubRoutes.ACK_MOCK_RESULT)