Skip to content

Commit a60d2a3

Browse files
authored
fix: Add configurable to run tests against different firestore backends (#1659)
1 parent ac3a60b commit a60d2a3

File tree

1 file changed

+29
-1
lines changed
  • google-cloud-firestore/src/test/java/com/google/cloud/firestore/it

1 file changed

+29
-1
lines changed

google-cloud-firestore/src/test/java/com/google/cloud/firestore/it/ITBaseTest.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static com.google.cloud.firestore.LocalFirestoreHelper.autoId;
2020
import static com.google.cloud.firestore.it.ITQueryTest.map;
2121

22+
import com.google.api.gax.rpc.TransportChannelProvider;
2223
import com.google.cloud.firestore.DocumentReference;
2324
import com.google.cloud.firestore.Firestore;
2425
import com.google.cloud.firestore.FirestoreOptions;
@@ -54,15 +55,42 @@ public abstract class ITBaseTest {
5455
public void before() throws Exception {
5556
FirestoreOptions.Builder optionsBuilder = FirestoreOptions.newBuilder();
5657

57-
String namedDb = System.getProperty("FIRESTORE_NAMED_DATABASE");
58+
String dbPropertyName = "FIRESTORE_NAMED_DATABASE";
59+
String namedDb = System.getProperty(dbPropertyName);
60+
if (namedDb == null) {
61+
namedDb = System.getenv(dbPropertyName);
62+
}
5863
if (namedDb != null) {
5964
logger.log(Level.INFO, "Integration test using named database " + namedDb);
6065
optionsBuilder = optionsBuilder.setDatabaseId(namedDb);
6166
} else {
6267
logger.log(Level.INFO, "Integration test using default database.");
6368
}
6469

70+
String targetPropertyName = "FIRESTORE_TARGET_BACKEND";
71+
String targetBackend = System.getProperty(targetPropertyName);
72+
if (targetBackend == null) {
73+
targetBackend = System.getenv(targetPropertyName);
74+
}
75+
TransportChannelProvider defaultProvider = optionsBuilder.build().getTransportChannelProvider();
76+
if (targetBackend != null) {
77+
if (targetBackend.equals("PROD")) {
78+
// do nothing to use the default
79+
} else if (targetBackend.equals("QA")) {
80+
optionsBuilder.setChannelProvider(
81+
defaultProvider.withEndpoint("staging-firestore.sandbox.googleapis.com:443"));
82+
} else if (targetBackend.equals("NIGHTLY")) {
83+
optionsBuilder.setChannelProvider(
84+
defaultProvider.withEndpoint("test-firestore.sandbox.googleapis.com:443"));
85+
} else {
86+
throw new IllegalArgumentException("Illegal target backend: " + targetBackend);
87+
}
88+
}
89+
6590
firestoreOptions = optionsBuilder.build();
91+
logger.log(
92+
Level.INFO,
93+
"Integration test against " + firestoreOptions.getTransportChannelProvider().getEndpoint());
6694
firestore = firestoreOptions.getService();
6795
primeBackend();
6896
}

0 commit comments

Comments
 (0)