diff --git a/modules/gcloud/src/main/java/org/testcontainers/containers/DatastoreEmulatorContainer.java b/modules/gcloud/src/main/java/org/testcontainers/containers/DatastoreEmulatorContainer.java index 85b07b94591..fe0a9959f2d 100644 --- a/modules/gcloud/src/main/java/org/testcontainers/containers/DatastoreEmulatorContainer.java +++ b/modules/gcloud/src/main/java/org/testcontainers/containers/DatastoreEmulatorContainer.java @@ -15,15 +15,24 @@ public class DatastoreEmulatorContainer extends GenericContainerhost:port pair corresponding to the address on which the emulator is + * reachable from the test host machine. Directly usable as a parameter to the + * com.google.cloud.ServiceOptions.Builder#setHost(java.lang.String) method. + */ + public String getEmulatorEndpoint() { + return getContainerIpAddress() + ":" + getMappedPort(8081); + } } diff --git a/modules/gcloud/src/main/java/org/testcontainers/containers/FirestoreEmulatorContainer.java b/modules/gcloud/src/main/java/org/testcontainers/containers/FirestoreEmulatorContainer.java index 41442f0f531..6353a679130 100644 --- a/modules/gcloud/src/main/java/org/testcontainers/containers/FirestoreEmulatorContainer.java +++ b/modules/gcloud/src/main/java/org/testcontainers/containers/FirestoreEmulatorContainer.java @@ -15,16 +15,25 @@ public class FirestoreEmulatorContainer extends GenericContainerhost:port pair corresponding to the address on which the emulator is + * reachable from the test host machine. Directly usable as a parameter to the + * com.google.cloud.ServiceOptions.Builder#setHost(java.lang.String) method. + */ + public String getEmulatorEndpoint() { + return getContainerIpAddress() + ":" + getMappedPort(8080); + } } diff --git a/modules/gcloud/src/main/java/org/testcontainers/containers/PubSubEmulatorContainer.java b/modules/gcloud/src/main/java/org/testcontainers/containers/PubSubEmulatorContainer.java index c92145b3d3a..90d77c837cf 100644 --- a/modules/gcloud/src/main/java/org/testcontainers/containers/PubSubEmulatorContainer.java +++ b/modules/gcloud/src/main/java/org/testcontainers/containers/PubSubEmulatorContainer.java @@ -15,6 +15,7 @@ public class PubSubEmulatorContainer extends GenericContainerhost:port pair corresponding to the address on which the emulator is + * reachable from the test host machine. Directly usable as a parameter to the + * io.grpc.ManagedChannelBuilder#forTarget(java.lang.String) method. + */ + public String getEmulatorEndpoint() { + return getContainerIpAddress() + ":" + getMappedPort(PORT); + } } diff --git a/modules/gcloud/src/main/java/org/testcontainers/containers/SpannerEmulatorContainer.java b/modules/gcloud/src/main/java/org/testcontainers/containers/SpannerEmulatorContainer.java index 5f2a203d911..8603b1f3437 100644 --- a/modules/gcloud/src/main/java/org/testcontainers/containers/SpannerEmulatorContainer.java +++ b/modules/gcloud/src/main/java/org/testcontainers/containers/SpannerEmulatorContainer.java @@ -25,4 +25,20 @@ public SpannerEmulatorContainer(final DockerImageName dockerImageName) { .withRegEx(".*Cloud Spanner emulator running\\..*")); } + /** + * @return a host:port pair corresponding to the address on which the emulator's + * gRPC endpoint is reachable from the test host machine. Directly usable as a parameter to the + * com.google.cloud.spanner.SpannerOptions.Builder#setEmulatorHost(java.lang.String) method. + */ + public String getEmulatorGrpcEndpoint() { + return getContainerIpAddress() + ":" + getMappedPort(GRPC_PORT); + } + + /** + * @return a host:port pair corresponding to the address on which the emulator's + * HTTP REST endpoint is reachable from the test host machine. + */ + public String getEmulatorHttpEndpoint() { + return getContainerIpAddress() + ":" + getMappedPort(HTTP_PORT); + } } diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java index f8285e4c691..4709ed1bbd6 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java @@ -1,5 +1,7 @@ package org.testcontainers.containers; +import static org.assertj.core.api.Assertions.assertThat; + import com.google.cloud.NoCredentials; import com.google.cloud.ServiceOptions; import com.google.cloud.datastore.Datastore; @@ -10,8 +12,6 @@ import org.junit.Test; import org.testcontainers.utility.DockerImageName; -import static org.assertj.core.api.Assertions.assertThat; - public class DatastoreEmulatorContainerTest { @Rule @@ -25,7 +25,7 @@ public class DatastoreEmulatorContainerTest { @Test public void testSimple() { DatastoreOptions options = DatastoreOptions.newBuilder() - .setHost(emulator.getContainerIpAddress() + ":" + emulator.getMappedPort(8081)) + .setHost(emulator.getEmulatorEndpoint()) .setCredentials(NoCredentials.getInstance()) .setRetrySettings(ServiceOptions.getNoRetrySettings()) .setProjectId("test-project") diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java index 2f23ff40483..766ce657bf0 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java @@ -1,8 +1,6 @@ package org.testcontainers.containers; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.ExecutionException; +import static org.assertj.core.api.Assertions.assertThat; import com.google.api.core.ApiFuture; import com.google.cloud.NoCredentials; @@ -12,12 +10,13 @@ import com.google.cloud.firestore.FirestoreOptions; import com.google.cloud.firestore.QuerySnapshot; import com.google.cloud.firestore.WriteResult; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ExecutionException; import org.junit.Rule; import org.junit.Test; import org.testcontainers.utility.DockerImageName; -import static org.assertj.core.api.Assertions.assertThat; - public class FirestoreEmulatorContainerTest { @Rule @@ -26,7 +25,7 @@ public class FirestoreEmulatorContainerTest { @Test public void testSimple() throws ExecutionException, InterruptedException { FirestoreOptions options = FirestoreOptions.getDefaultInstance().toBuilder() - .setHost(emulator.getContainerIpAddress() + ":" + emulator.getMappedPort(8080)) + .setHost(emulator.getEmulatorEndpoint()) .setCredentials(NoCredentials.getInstance()) .setProjectId("test-project") .build(); diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java index 0c5ec888de5..2a0acaa14e1 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java @@ -1,6 +1,6 @@ package org.testcontainers.containers; -import java.io.IOException; +import static org.assertj.core.api.Assertions.assertThat; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.GrpcTransportChannel; @@ -23,12 +23,11 @@ import com.google.pubsub.v1.TopicName; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; +import java.io.IOException; import org.junit.Rule; import org.junit.Test; import org.testcontainers.utility.DockerImageName; -import static org.assertj.core.api.Assertions.assertThat; - public class PubSubEmulatorContainerTest { public static final String PROJECT_ID = "my-project-id"; @@ -38,7 +37,7 @@ public class PubSubEmulatorContainerTest { @Test public void testSimple() throws IOException { - String hostport = emulator.getContainerIpAddress() + ":" + emulator.getMappedPort(8085); + String hostport = emulator.getEmulatorEndpoint(); ManagedChannel channel = ManagedChannelBuilder.forTarget(hostport).usePlaintext().build(); try { TransportChannelProvider channelProvider = diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java index 9093530236a..5a47f9429ad 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java @@ -1,7 +1,6 @@ package org.testcontainers.containers; -import java.util.Arrays; -import java.util.concurrent.ExecutionException; +import static org.assertj.core.api.Assertions.assertThat; import com.google.cloud.NoCredentials; import com.google.cloud.spanner.Database; @@ -17,12 +16,12 @@ import com.google.cloud.spanner.Spanner; import com.google.cloud.spanner.SpannerOptions; import com.google.cloud.spanner.Statement; +import java.util.Arrays; +import java.util.concurrent.ExecutionException; import org.junit.Rule; import org.junit.Test; import org.testcontainers.utility.DockerImageName; -import static org.assertj.core.api.Assertions.assertThat; - public class SpannerEmulatorContainerTest { @Rule @@ -35,7 +34,7 @@ public class SpannerEmulatorContainerTest { @Test public void testSimple() throws ExecutionException, InterruptedException { SpannerOptions options = SpannerOptions.newBuilder() - .setEmulatorHost(emulator.getContainerIpAddress() + ":" + emulator.getMappedPort(9010)) + .setEmulatorHost(emulator.getEmulatorGrpcEndpoint()) .setCredentials(NoCredentials.getInstance()) .setProjectId(PROJECT_NAME) .build(); diff --git a/modules/gcloud/src/test/resources/logback-test.xml b/modules/gcloud/src/test/resources/logback-test.xml new file mode 100644 index 00000000000..535e406fc13 --- /dev/null +++ b/modules/gcloud/src/test/resources/logback-test.xml @@ -0,0 +1,16 @@ + + + + + + %d{HH:mm:ss.SSS} %-5level %logger - %msg%n + + + + + + + + +