diff --git a/modules/gcloud/build.gradle b/modules/gcloud/build.gradle index 4deec14af03..5fabdf773df 100644 --- a/modules/gcloud/build.gradle +++ b/modules/gcloud/build.gradle @@ -3,6 +3,9 @@ description = "Testcontainers :: GCloud" dependencies { api project(':testcontainers') + testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.11.0' + + testImplementation 'org.junit.jupiter:junit-jupiter:5.13.4' testImplementation platform("com.google.cloud:libraries-bom:26.66.0") testImplementation 'com.google.cloud:google-cloud-bigquery' testImplementation 'com.google.cloud:google-cloud-datastore' @@ -12,3 +15,7 @@ dependencies { testImplementation 'com.google.cloud:google-cloud-bigtable' testImplementation 'org.assertj:assertj-core:3.27.4' } + +test { + useJUnitPlatform() +} diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java index 01fcbe137a6..7f06a67c26c 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/BigQueryEmulatorContainerTest.java @@ -5,7 +5,7 @@ import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.TableResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.math.BigDecimal; import java.util.List; @@ -13,10 +13,10 @@ import static org.assertj.core.api.Assertions.assertThat; -public class BigQueryEmulatorContainerTest { +class BigQueryEmulatorContainerTest { @Test - public void test() throws Exception { + void test() throws Exception { try ( // emulatorContainer { BigQueryEmulatorContainer container = new BigQueryEmulatorContainer("ghcr.io/goccy/bigquery-emulator:0.4.3") diff --git a/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java b/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java index a532d5e70af..8c84cfa79db 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/BigtableEmulatorContainerTest.java @@ -19,8 +19,7 @@ import com.google.cloud.bigtable.data.v2.models.TableId; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.io.IOException; @@ -28,48 +27,52 @@ import static org.assertj.core.api.Assertions.assertThat; -public class BigtableEmulatorContainerTest { +class BigtableEmulatorContainerTest { - public static final String PROJECT_ID = "test-project"; + private static final String PROJECT_ID = "test-project"; - public static final String INSTANCE_ID = "test-instance"; - - @Rule - // emulatorContainer { - public BigtableEmulatorContainer emulator = new BigtableEmulatorContainer( - DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") - ); - - // } + private static final String INSTANCE_ID = "test-instance"; @Test // testWithEmulatorContainer { - public void testSimple() throws IOException { - ManagedChannel channel = ManagedChannelBuilder.forTarget(emulator.getEmulatorEndpoint()).usePlaintext().build(); - - TransportChannelProvider channelProvider = FixedTransportChannelProvider.create( - GrpcTransportChannel.create(channel) - ); - NoCredentialsProvider credentialsProvider = NoCredentialsProvider.create(); - createTable(channelProvider, credentialsProvider, "test-table"); + void testSimple() throws IOException { try ( - BigtableDataClient client = BigtableDataClient.create( - BigtableDataSettings - .newBuilderForEmulator(emulator.getHost(), emulator.getEmulatorPort()) - .setProjectId(PROJECT_ID) - .setInstanceId(INSTANCE_ID) - .build() - ) + // emulatorContainer { + BigtableEmulatorContainer emulator = new BigtableEmulatorContainer( + DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") + ); + // } ) { - client.mutateRow(RowMutation.create(TableId.of("test-table"), "1").setCell("name", "firstName", "Ray")); + emulator.start(); + ManagedChannel channel = ManagedChannelBuilder + .forTarget(emulator.getEmulatorEndpoint()) + .usePlaintext() + .build(); + + TransportChannelProvider channelProvider = FixedTransportChannelProvider.create( + GrpcTransportChannel.create(channel) + ); + NoCredentialsProvider credentialsProvider = NoCredentialsProvider.create(); + createTable(channelProvider, credentialsProvider, "test-table"); + try ( + BigtableDataClient client = BigtableDataClient.create( + BigtableDataSettings + .newBuilderForEmulator(emulator.getHost(), emulator.getEmulatorPort()) + .setProjectId(PROJECT_ID) + .setInstanceId(INSTANCE_ID) + .build() + ) + ) { + client.mutateRow(RowMutation.create(TableId.of("test-table"), "1").setCell("name", "firstName", "Ray")); - Row row = client.readRow(TableId.of("test-table"), "1"); - List cells = row.getCells("name", "firstName"); + Row row = client.readRow(TableId.of("test-table"), "1"); + List cells = row.getCells("name", "firstName"); - assertThat(cells).isNotNull().hasSize(1); - assertThat(cells.get(0).getValue().toStringUtf8()).isEqualTo("Ray"); - } finally { - channel.shutdown(); + assertThat(cells).isNotNull().hasSize(1); + assertThat(cells.get(0).getValue().toStringUtf8()).isEqualTo("Ray"); + } finally { + channel.shutdown(); + } } } 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 7ea0ceb9a49..1b743f1e3cd 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/DatastoreEmulatorContainerTest.java @@ -6,8 +6,7 @@ import com.google.cloud.datastore.DatastoreOptions; import com.google.cloud.datastore.Entity; import com.google.cloud.datastore.Key; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.io.IOException; @@ -16,37 +15,38 @@ public class DatastoreEmulatorContainerTest { - @Rule - // creatingDatastoreEmulatorContainer { - public DatastoreEmulatorContainer emulator = new DatastoreEmulatorContainer( - DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") - ); - - // } - // startingDatastoreEmulatorContainer { @Test public void testSimple() { - DatastoreOptions options = DatastoreOptions - .newBuilder() - .setHost(emulator.getEmulatorEndpoint()) - .setCredentials(NoCredentials.getInstance()) - .setRetrySettings(ServiceOptions.getNoRetrySettings()) - .setProjectId(emulator.getProjectId()) - .build(); - Datastore datastore = options.getService(); + try ( + // creatingDatastoreEmulatorContainer { + DatastoreEmulatorContainer emulator = new DatastoreEmulatorContainer( + DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") + ); + // } + ) { + emulator.start(); + DatastoreOptions options = DatastoreOptions + .newBuilder() + .setHost(emulator.getEmulatorEndpoint()) + .setCredentials(NoCredentials.getInstance()) + .setRetrySettings(ServiceOptions.getNoRetrySettings()) + .setProjectId(emulator.getProjectId()) + .build(); + Datastore datastore = options.getService(); - Key key = datastore.newKeyFactory().setKind("Task").newKey("sample"); - Entity entity = Entity.newBuilder(key).set("description", "my description").build(); - datastore.put(entity); + Key key = datastore.newKeyFactory().setKind("Task").newKey("sample"); + Entity entity = Entity.newBuilder(key).set("description", "my description").build(); + datastore.put(entity); - assertThat(datastore.get(key).getString("description")).isEqualTo("my description"); + assertThat(datastore.get(key).getString("description")).isEqualTo("my description"); + } } // } @Test - public void testWithFlags() throws IOException, InterruptedException { + void testWithFlags() throws IOException, InterruptedException { try ( DatastoreEmulatorContainer emulator = new DatastoreEmulatorContainer( "gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators" @@ -61,7 +61,7 @@ public void testWithFlags() throws IOException, InterruptedException { } @Test - public void testWithMultipleFlags() throws IOException, InterruptedException { + void testWithMultipleFlags() throws IOException, InterruptedException { try ( DatastoreEmulatorContainer emulator = new DatastoreEmulatorContainer( "gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators" 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 0d9773ce87a..57494ef5535 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java @@ -8,8 +8,7 @@ import com.google.cloud.firestore.FirestoreOptions; import com.google.cloud.firestore.QuerySnapshot; import com.google.cloud.firestore.WriteResult; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.util.HashMap; @@ -18,46 +17,47 @@ import static org.assertj.core.api.Assertions.assertThat; -public class FirestoreEmulatorContainerTest { - - @Rule - // emulatorContainer { - public FirestoreEmulatorContainer emulator = new FirestoreEmulatorContainer( - DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") - ); - - // } +class FirestoreEmulatorContainerTest { // testWithEmulatorContainer { @Test - public void testSimple() throws ExecutionException, InterruptedException { - FirestoreOptions options = FirestoreOptions - .getDefaultInstance() - .toBuilder() - .setHost(emulator.getEmulatorEndpoint()) - .setCredentials(NoCredentials.getInstance()) - .setProjectId("test-project") - .build(); - Firestore firestore = options.getService(); + void testSimple() throws ExecutionException, InterruptedException { + try ( + // emulatorContainer { + FirestoreEmulatorContainer emulator = new FirestoreEmulatorContainer( + DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") + ); + // } + ) { + emulator.start(); + FirestoreOptions options = FirestoreOptions + .getDefaultInstance() + .toBuilder() + .setHost(emulator.getEmulatorEndpoint()) + .setCredentials(NoCredentials.getInstance()) + .setProjectId("test-project") + .build(); + Firestore firestore = options.getService(); - CollectionReference users = firestore.collection("users"); - DocumentReference docRef = users.document("alovelace"); - Map data = new HashMap<>(); - data.put("first", "Ada"); - data.put("last", "Lovelace"); - ApiFuture result = docRef.set(data); - result.get(); + CollectionReference users = firestore.collection("users"); + DocumentReference docRef = users.document("alovelace"); + Map data = new HashMap<>(); + data.put("first", "Ada"); + data.put("last", "Lovelace"); + ApiFuture result = docRef.set(data); + result.get(); - ApiFuture query = users.get(); - QuerySnapshot querySnapshot = query.get(); + ApiFuture query = users.get(); + QuerySnapshot querySnapshot = query.get(); - assertThat(querySnapshot.getDocuments().get(0).getData()).containsEntry("first", "Ada"); + assertThat(querySnapshot.getDocuments().get(0).getData()).containsEntry("first", "Ada"); + } } // } @Test - public void testWithFlags() { + void testWithFlags() { try ( FirestoreEmulatorContainer emulator = new FirestoreEmulatorContainer( "gcr.io/google.com/cloudsdktool/google-cloud-cli:465.0.0-emulators" 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 b2f75f0f36a..7d92c50a775 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/PubSubEmulatorContainerTest.java @@ -22,70 +22,73 @@ import com.google.pubsub.v1.TopicName; import io.grpc.ManagedChannel; import io.grpc.ManagedChannelBuilder; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.io.IOException; import static org.assertj.core.api.Assertions.assertThat; -public class PubSubEmulatorContainerTest { +class PubSubEmulatorContainerTest { - public static final String PROJECT_ID = "my-project-id"; - - @Rule - // emulatorContainer { - public PubSubEmulatorContainer emulator = new PubSubEmulatorContainer( - DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") - ); - - // } + private static final String PROJECT_ID = "my-project-id"; @Test // testWithEmulatorContainer { - public void testSimple() throws IOException { - String hostport = emulator.getEmulatorEndpoint(); - ManagedChannel channel = ManagedChannelBuilder.forTarget(hostport).usePlaintext().build(); - try { - TransportChannelProvider channelProvider = FixedTransportChannelProvider.create( - GrpcTransportChannel.create(channel) + void testSimple() throws IOException { + try ( + // emulatorContainer { + PubSubEmulatorContainer emulator = new PubSubEmulatorContainer( + DockerImageName.parse("gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators") ); - NoCredentialsProvider credentialsProvider = NoCredentialsProvider.create(); - - String topicId = "my-topic-id"; - createTopic(topicId, channelProvider, credentialsProvider); - - String subscriptionId = "my-subscription-id"; - createSubscription(subscriptionId, topicId, channelProvider, credentialsProvider); - - Publisher publisher = Publisher - .newBuilder(TopicName.of(PROJECT_ID, topicId)) - .setChannelProvider(channelProvider) - .setCredentialsProvider(credentialsProvider) - .build(); - PubsubMessage message = PubsubMessage.newBuilder().setData(ByteString.copyFromUtf8("test message")).build(); - publisher.publish(message); - - SubscriberStubSettings subscriberStubSettings = SubscriberStubSettings - .newBuilder() - .setTransportChannelProvider(channelProvider) - .setCredentialsProvider(credentialsProvider) - .build(); - try (SubscriberStub subscriber = GrpcSubscriberStub.create(subscriberStubSettings)) { - PullRequest pullRequest = PullRequest + // } + ) { + emulator.start(); + String hostport = emulator.getEmulatorEndpoint(); + ManagedChannel channel = ManagedChannelBuilder.forTarget(hostport).usePlaintext().build(); + try { + TransportChannelProvider channelProvider = FixedTransportChannelProvider.create( + GrpcTransportChannel.create(channel) + ); + NoCredentialsProvider credentialsProvider = NoCredentialsProvider.create(); + + String topicId = "my-topic-id"; + createTopic(topicId, channelProvider, credentialsProvider); + + String subscriptionId = "my-subscription-id"; + createSubscription(subscriptionId, topicId, channelProvider, credentialsProvider); + + Publisher publisher = Publisher + .newBuilder(TopicName.of(PROJECT_ID, topicId)) + .setChannelProvider(channelProvider) + .setCredentialsProvider(credentialsProvider) + .build(); + PubsubMessage message = PubsubMessage .newBuilder() - .setMaxMessages(1) - .setSubscription(ProjectSubscriptionName.format(PROJECT_ID, subscriptionId)) + .setData(ByteString.copyFromUtf8("test message")) .build(); - PullResponse pullResponse = subscriber.pullCallable().call(pullRequest); + publisher.publish(message); - assertThat(pullResponse.getReceivedMessagesList()).hasSize(1); - assertThat(pullResponse.getReceivedMessages(0).getMessage().getData().toStringUtf8()) - .isEqualTo("test message"); + SubscriberStubSettings subscriberStubSettings = SubscriberStubSettings + .newBuilder() + .setTransportChannelProvider(channelProvider) + .setCredentialsProvider(credentialsProvider) + .build(); + try (SubscriberStub subscriber = GrpcSubscriberStub.create(subscriberStubSettings)) { + PullRequest pullRequest = PullRequest + .newBuilder() + .setMaxMessages(1) + .setSubscription(ProjectSubscriptionName.format(PROJECT_ID, subscriptionId)) + .build(); + PullResponse pullResponse = subscriber.pullCallable().call(pullRequest); + + assertThat(pullResponse.getReceivedMessagesList()).hasSize(1); + assertThat(pullResponse.getReceivedMessages(0).getMessage().getData().toStringUtf8()) + .isEqualTo("test message"); + } + } finally { + channel.shutdown(); } - } finally { - channel.shutdown(); } } 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 b246e7e1f0d..3d651ad6a53 100644 --- a/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java +++ b/modules/gcloud/src/test/java/org/testcontainers/containers/SpannerEmulatorContainerTest.java @@ -14,8 +14,7 @@ import com.google.cloud.spanner.Spanner; import com.google.cloud.spanner.SpannerOptions; import com.google.cloud.spanner.Statement; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.testcontainers.utility.DockerImageName; import java.util.Arrays; @@ -23,15 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat; -public class SpannerEmulatorContainerTest { - - @Rule - // emulatorContainer { - public SpannerEmulatorContainer emulator = new SpannerEmulatorContainer( - DockerImageName.parse("gcr.io/cloud-spanner-emulator/emulator:1.4.0") - ); - - // } +class SpannerEmulatorContainerTest { private static final String PROJECT_NAME = "test-project"; @@ -41,38 +32,47 @@ public class SpannerEmulatorContainerTest { // testWithEmulatorContainer { @Test - public void testSimple() throws ExecutionException, InterruptedException { - SpannerOptions options = SpannerOptions - .newBuilder() - .setEmulatorHost(emulator.getEmulatorGrpcEndpoint()) - .setCredentials(NoCredentials.getInstance()) - .setProjectId(PROJECT_NAME) - .build(); - - Spanner spanner = options.getService(); - - InstanceId instanceId = createInstance(spanner); - - createDatabase(spanner); - - DatabaseId databaseId = DatabaseId.of(instanceId, DATABASE_NAME); - DatabaseClient dbClient = spanner.getDatabaseClient(databaseId); - dbClient - .readWriteTransaction() - .run(tx -> { - String sql1 = "Delete from TestTable where 1=1"; - tx.executeUpdate(Statement.of(sql1)); - String sql = "INSERT INTO TestTable (Key, Value) VALUES (1, 'Java'), (2, 'Go')"; - tx.executeUpdate(Statement.of(sql)); - return null; - }); - - ResultSet resultSet = dbClient - .readOnlyTransaction() - .executeQuery(Statement.of("select * from TestTable order by Key")); - resultSet.next(); - assertThat(resultSet.getLong(0)).isEqualTo(1); - assertThat(resultSet.getString(1)).isEqualTo("Java"); + void testSimple() throws ExecutionException, InterruptedException { + try ( + // emulatorContainer { + SpannerEmulatorContainer emulator = new SpannerEmulatorContainer( + DockerImageName.parse("gcr.io/cloud-spanner-emulator/emulator:1.4.0") + ); + // } + ) { + emulator.start(); + SpannerOptions options = SpannerOptions + .newBuilder() + .setEmulatorHost(emulator.getEmulatorGrpcEndpoint()) + .setCredentials(NoCredentials.getInstance()) + .setProjectId(PROJECT_NAME) + .build(); + + Spanner spanner = options.getService(); + + InstanceId instanceId = createInstance(spanner); + + createDatabase(spanner); + + DatabaseId databaseId = DatabaseId.of(instanceId, DATABASE_NAME); + DatabaseClient dbClient = spanner.getDatabaseClient(databaseId); + dbClient + .readWriteTransaction() + .run(tx -> { + String sql1 = "Delete from TestTable where 1=1"; + tx.executeUpdate(Statement.of(sql1)); + String sql = "INSERT INTO TestTable (Key, Value) VALUES (1, 'Java'), (2, 'Go')"; + tx.executeUpdate(Statement.of(sql)); + return null; + }); + + ResultSet resultSet = dbClient + .readOnlyTransaction() + .executeQuery(Statement.of("select * from TestTable order by Key")); + resultSet.next(); + assertThat(resultSet.getLong(0)).isEqualTo(1); + assertThat(resultSet.getString(1)).isEqualTo("Java"); + } } // }