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)

Reply via email to