diff --git a/docs/modules/gcloud.md b/docs/modules/gcloud.md index 049931b3be1..84fab5e0e3b 100644 --- a/docs/modules/gcloud.md +++ b/docs/modules/gcloud.md @@ -5,7 +5,7 @@ Testcontainers module for the Google Cloud Platform's [Cloud SDK](https://cloud.google.com/sdk/). -Currently, the module supports `BigQuery`, `Bigtable`, `Datastore`, `Firestore`, `Spanner`, and `Pub/Sub` emulators. In order to use it, you should use the following classes: +Currently, the module supports `BigQuery`, `Bigtable`, `Datastore`, `Firestore`, `Spanner`, `Pub/Sub`, and `CloudStorage` emulators. In order to use it, you should use the following classes: Class | Container Image -|- @@ -15,6 +15,7 @@ DatastoreEmulatorContainer | [gcr.io/google.com/cloudsdktool/google-cloud-cli:em FirestoreEmulatorContainer | [gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators](https://gcr.io/google.com/cloudsdktool/google-cloud-cli) SpannerEmulatorContainer | [gcr.io/cloud-spanner-emulator/emulator](https://gcr.io/cloud-spanner-emulator/emulator) PubSubEmulatorContainer | [gcr.io/google.com/cloudsdktool/google-cloud-cli:emulators](https://gcr.io/google.com/cloudsdktool/google-cloud-cli) +CloudStorageEmulatorContainer | [hub.docker.com/r/fsouza/fake-gcs-server](https://hub.docker.com/r/fsouza/fake-gcs-server) ## Usage example @@ -150,6 +151,15 @@ See more examples: * [Full sample code](https://github.com/testcontainers/testcontainers-java/tree/main/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java) * [With Spring Boot](https://github.com/saturnism/testcontainers-gcloud-examples/tree/main/springboot/pubsub-example/src/test/java/com/example/springboot/pubsub/PubSubIntegrationTests.java) +### CloudStorage + +Start the CloudStorage emulator and test against it: + + +[Testing with a CloudStorage Emulator container](../../modules/gcloud/src/test/java/org/testcontainers/containers/CloudStorageEmulatorContainerTest.java) inside_block:testWithCloudStorageEmulatorContainer + + + ## Adding this module to your project dependencies Add the following dependency to your `pom.xml`/`build.gradle` file: diff --git a/modules/gcloud/build.gradle b/modules/gcloud/build.gradle index cb55e466e22..a8c75d357bf 100644 --- a/modules/gcloud/build.gradle +++ b/modules/gcloud/build.gradle @@ -10,5 +10,6 @@ dependencies { testImplementation 'com.google.cloud:google-cloud-pubsub' testImplementation 'com.google.cloud:google-cloud-spanner' testImplementation 'com.google.cloud:google-cloud-bigtable' + testImplementation 'com.google.cloud:google-cloud-storage' testImplementation 'org.assertj:assertj-core:3.26.3' } diff --git a/modules/gcloud/src/main/java/org/testcontainers/containers/CloudStorageEmulatorContainer.java b/modules/gcloud/src/main/java/org/testcontainers/containers/CloudStorageEmulatorContainer.java new file mode 100644 index 00000000000..48d68a81c18 --- /dev/null +++ b/modules/gcloud/src/main/java/org/testcontainers/containers/CloudStorageEmulatorContainer.java @@ -0,0 +1,83 @@ +package org.testcontainers.containers; + +import org.testcontainers.containers.wait.strategy.WaitStrategy; +import org.testcontainers.containers.wait.strategy.WaitStrategyTarget; +import org.testcontainers.utility.DockerImageName; + +import java.io.IOException; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; + +/** + * Testcontainers implementation for Google Cloud Storage. + * Default port: 4443 + *
+ * Supported image: {@code hub.docker.com/r/fsouza/fake-gcs-server} + *
+ * @see fsouza/fake-gcs-server on GitHub
+ */
+public class CloudStorageEmulatorContainer extends GenericContainer