Skip to content

Commit 3bd64f8

Browse files
authored
Start couchbase once for async tests (#12872)
1 parent 919661f commit 3bd64f8

File tree

1 file changed

+37
-12
lines changed

1 file changed

+37
-12
lines changed

instrumentation/couchbase/couchbase-common/testing/src/main/java/io/opentelemetry/instrumentation/couchbase/AbstractCouchbaseAsyncClientTest.java

+37-12
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
import java.util.concurrent.TimeUnit;
3232
import java.util.concurrent.TimeoutException;
3333
import java.util.stream.Stream;
34+
import org.junit.jupiter.api.AfterAll;
35+
import org.junit.jupiter.api.BeforeAll;
3436
import org.junit.jupiter.api.Test;
3537
import org.junit.jupiter.api.extension.RegisterExtension;
3638
import org.junit.jupiter.params.ParameterizedTest;
@@ -47,28 +49,51 @@ public abstract class AbstractCouchbaseAsyncClientTest extends AbstractCouchbase
4749

4850
@RegisterExtension static final AutoCleanupExtension cleanup = AutoCleanupExtension.create();
4951

52+
private CouchbaseEnvironment environmentCouchbase;
53+
private CouchbaseEnvironment environmentMemcache;
54+
private CouchbaseAsyncCluster clusterCouchbase;
55+
private CouchbaseAsyncCluster clusterMemcache;
56+
5057
private static Stream<Arguments> bucketSettings() {
5158
return Stream.of(
5259
Arguments.of(named(bucketCouchbase.type().name(), bucketCouchbase)),
5360
Arguments.of(named(bucketMemcache.type().name(), bucketMemcache)));
5461
}
5562

56-
private CouchbaseAsyncCluster prepareCluster(BucketSettings bucketSettings) {
57-
CouchbaseEnvironment environment = envBuilder(bucketSettings).build();
58-
CouchbaseAsyncCluster cluster =
59-
CouchbaseAsyncCluster.create(environment, Collections.singletonList("127.0.0.1"));
60-
cleanup.deferCleanup(
61-
() -> cluster.disconnect().timeout(10, TimeUnit.SECONDS).toBlocking().single());
62-
cleanup.deferCleanup(environment::shutdown);
63+
@BeforeAll
64+
void setUpClusters() {
65+
environmentCouchbase = envBuilder(bucketCouchbase).build();
66+
clusterCouchbase =
67+
CouchbaseAsyncCluster.create(environmentCouchbase, Collections.singletonList("127.0.0.1"));
68+
69+
environmentMemcache = envBuilder(bucketMemcache).build();
70+
clusterMemcache =
71+
CouchbaseAsyncCluster.create(environmentMemcache, Collections.singletonList("127.0.0.1"));
72+
}
73+
74+
@AfterAll
75+
void cleanUpClusters() {
76+
clusterCouchbase.disconnect().timeout(10, TimeUnit.SECONDS).toBlocking().single();
77+
environmentCouchbase.shutdown();
78+
79+
clusterMemcache.disconnect().timeout(10, TimeUnit.SECONDS).toBlocking().single();
80+
environmentMemcache.shutdown();
81+
}
6382

64-
return cluster;
83+
private CouchbaseAsyncCluster getCluster(BucketSettings bucketSettings) {
84+
if (bucketSettings == bucketCouchbase) {
85+
return clusterCouchbase;
86+
} else if (bucketSettings == bucketMemcache) {
87+
return clusterMemcache;
88+
}
89+
throw new IllegalArgumentException("unknown setting " + bucketSettings.name());
6590
}
6691

6792
@ParameterizedTest
6893
@MethodSource("bucketSettings")
6994
void hasBucket(BucketSettings bucketSettings)
7095
throws ExecutionException, InterruptedException, TimeoutException {
71-
CouchbaseAsyncCluster cluster = prepareCluster(bucketSettings);
96+
CouchbaseAsyncCluster cluster = getCluster(bucketSettings);
7297
AsyncClusterManager manager = cluster.clusterManager(USERNAME, PASSWORD).toBlocking().single();
7398

7499
testing.waitForTraces(1);
@@ -103,7 +128,7 @@ void hasBucket(BucketSettings bucketSettings)
103128
@MethodSource("bucketSettings")
104129
void upsert(BucketSettings bucketSettings)
105130
throws ExecutionException, InterruptedException, TimeoutException {
106-
CouchbaseAsyncCluster cluster = prepareCluster(bucketSettings);
131+
CouchbaseAsyncCluster cluster = getCluster(bucketSettings);
107132

108133
JsonObject content = JsonObject.create().put("hello", "world");
109134
CompletableFuture<JsonDocument> inserted = new CompletableFuture<>();
@@ -144,7 +169,7 @@ void upsert(BucketSettings bucketSettings)
144169
@MethodSource("bucketSettings")
145170
void upsertAndGet(BucketSettings bucketSettings)
146171
throws ExecutionException, InterruptedException, TimeoutException {
147-
CouchbaseAsyncCluster cluster = prepareCluster(bucketSettings);
172+
CouchbaseAsyncCluster cluster = getCluster(bucketSettings);
148173

149174
JsonObject content = JsonObject.create().put("hello", "world");
150175
CompletableFuture<JsonDocument> inserted = new CompletableFuture<>();
@@ -194,7 +219,7 @@ void upsertAndGet(BucketSettings bucketSettings)
194219
@Test
195220
void query() throws ExecutionException, InterruptedException, TimeoutException {
196221
// Only couchbase buckets support queries.
197-
CouchbaseAsyncCluster cluster = prepareCluster(bucketCouchbase);
222+
CouchbaseAsyncCluster cluster = getCluster(bucketCouchbase);
198223

199224
CompletableFuture<JsonObject> queryResult = new CompletableFuture<>();
200225
// Mock expects this specific query.

0 commit comments

Comments
 (0)