This is an automated email from the ASF dual-hosted git repository.

jamesnetherton 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 ec86676  Use testcontainers gcloud for Google PubSub itest
ec86676 is described below

commit ec8667673de38ef209f0ba8295c688889730c406
Author: James Netherton <jamesnether...@gmail.com>
AuthorDate: Wed Sep 1 11:31:52 2021 +0100

    Use testcontainers gcloud for Google PubSub itest
---
 integration-tests/google-pubsub/pom.xml            |  2 +-
 .../google/pubsub/it/GooglePubsubTestResource.java | 22 +++++++---------------
 2 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/integration-tests/google-pubsub/pom.xml 
b/integration-tests/google-pubsub/pom.xml
index abe7ce5..119f5a4 100644
--- a/integration-tests/google-pubsub/pom.xml
+++ b/integration-tests/google-pubsub/pom.xml
@@ -52,7 +52,7 @@
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
+            <artifactId>gcloud</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git 
a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTestResource.java
 
b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTestResource.java
index 4e27bd5..6e55116 100644
--- 
a/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTestResource.java
+++ 
b/integration-tests/google-pubsub/src/test/java/org/apache/camel/quarkus/component/google/pubsub/it/GooglePubsubTestResource.java
@@ -36,40 +36,32 @@ import io.grpc.ManagedChannel;
 import io.grpc.ManagedChannelBuilder;
 import io.quarkus.test.common.QuarkusTestResourceLifecycleManager;
 import org.apache.camel.util.CollectionHelper;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
+import org.testcontainers.containers.PubSubEmulatorContainer;
+import org.testcontainers.utility.DockerImageName;
 
 public class GooglePubsubTestResource implements 
QuarkusTestResourceLifecycleManager {
 
     private static final String PROJECT_ID = "test-project";
     private static final String TOPIC = "test-topic";
     private static final String SUBSCRIPTION = TOPIC + "-subscription";
-    private static final String GOOGLE_PUBSUB_IMAGE = 
"google/cloud-sdk:latest";
-    private static final int GOOGLE_PUBSUB_PORT = 8383;
+    private static final String GOOGLE_PUBSUB_IMAGE = 
"gcr.io/google.com/cloudsdktool/cloud-sdk:emulators";
 
-    private GenericContainer<?> container;
+    private PubSubEmulatorContainer container;
 
     @Override
     public Map<String, String> start() {
         try {
-            container = new GenericContainer<>(GOOGLE_PUBSUB_IMAGE)
-                    .withCommand("/bin/sh", "-c",
-                            String.format("gcloud beta emulators pubsub start 
--project %s --host-port=0.0.0.0:%d",
-                                    PROJECT_ID, GOOGLE_PUBSUB_PORT))
-                    .withExposedPorts(GOOGLE_PUBSUB_PORT)
-                    .waitingFor(new 
LogMessageWaitStrategy().withRegEx("(?s).*started.*$"));
-
+            DockerImageName imageName = 
DockerImageName.parse(GOOGLE_PUBSUB_IMAGE);
+            container = new PubSubEmulatorContainer(imageName);
             container.start();
 
             createTopicSubscriptionPair(TOPIC, SUBSCRIPTION);
 
-            String endpointAddress = String.format("%s:%s", 
container.getContainerIpAddress(), container.getFirstMappedPort());
-
             return CollectionHelper.mapOf(
                     "project.id", PROJECT_ID,
                     "topic.name", TOPIC,
                     "subscription.name", SUBSCRIPTION,
-                    "camel.component.google-pubsub.endpoint", endpointAddress);
+                    "camel.component.google-pubsub.endpoint", 
container.getEmulatorEndpoint());
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

Reply via email to