Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions modules/gcloud/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand All @@ -12,3 +15,7 @@ dependencies {
testImplementation 'com.google.cloud:google-cloud-bigtable'
testImplementation 'org.assertj:assertj-core:3.27.4'
}

test {
useJUnitPlatform()
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@
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;
import java.util.stream.Collectors;

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")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,57 +19,60 @@
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;
import java.util.List;

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<RowCell> cells = row.getCells("name", "firstName");
Row row = client.readRow(TableId.of("test-table"), "1");
List<RowCell> 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();
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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"
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<String, Object> data = new HashMap<>();
data.put("first", "Ada");
data.put("last", "Lovelace");
ApiFuture<WriteResult> result = docRef.set(data);
result.get();
CollectionReference users = firestore.collection("users");
DocumentReference docRef = users.document("alovelace");
Map<String, Object> data = new HashMap<>();
data.put("first", "Ada");
data.put("last", "Lovelace");
ApiFuture<WriteResult> result = docRef.set(data);
result.get();

ApiFuture<QuerySnapshot> query = users.get();
QuerySnapshot querySnapshot = query.get();
ApiFuture<QuerySnapshot> 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"
Expand Down
Loading
Loading