Skip to content

Commit 66d3154

Browse files
committed
Normalized test database name
Fixed shutdownhooks in fixture.java so no longer need setupSpec / cleanupSpec
1 parent 32503c1 commit 66d3154

8 files changed

Lines changed: 53 additions & 45 deletions

File tree

driver-async/src/test/functional/com/mongodb/async/client/Fixture.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@
3030
public final class Fixture {
3131
public static final String DEFAULT_URI = "mongodb://localhost:27017";
3232
public static final String MONGODB_URI_SYSTEM_PROPERTY_NAME = "org.mongodb.test.uri";
33+
private static final String DEFAULT_DATABASE_NAME = "JavaDriverTest";
3334

3435
private static ConnectionString connectionString;
3536
private static MongoClientImpl mongoClient;
36-
private static String defaultDatabaseName;
37+
3738

3839
private Fixture() {
3940
}
@@ -56,11 +57,8 @@ public static synchronized ConnectionString getConnectionString() {
5657
return connectionString;
5758
}
5859

59-
public static synchronized String getDefaultDatabaseName() {
60-
if (defaultDatabaseName == null) {
61-
defaultDatabaseName = "DriverTest-" + System.nanoTime();
62-
}
63-
return defaultDatabaseName;
60+
public static String getDefaultDatabaseName() {
61+
return DEFAULT_DATABASE_NAME;
6462
}
6563

6664
public static MongoDatabase getDefaultDatabase() {
@@ -103,7 +101,7 @@ public static void drop(final MongoNamespace namespace) {
103101
getMongoClient().getDatabase(namespace.getDatabaseName())
104102
.executeCommand(new Document("drop", namespace.getCollectionName())).get();
105103
} catch (CommandFailureException e) {
106-
if (!e.getErrorMessage().startsWith("ns not found")) {
104+
if (!e.getErrorMessage().contains("ns not found")) {
107105
throw e;
108106
}
109107
}
@@ -113,7 +111,7 @@ static class ShutdownHook extends Thread {
113111
@Override
114112
public void run() {
115113
if (mongoClient != null) {
116-
if (defaultDatabaseName != null) {
114+
if (mongoClient != null) {
117115
try {
118116
dropDatabase(getDefaultDatabaseName());
119117
} catch (CommandFailureException e) {

driver-async/src/test/functional/com/mongodb/async/client/FunctionalSpecification.groovy

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,13 @@ import org.mongodb.Document
2020
import spock.lang.Specification
2121

2222
import static Fixture.drop
23-
import static Fixture.dropDatabase
2423
import static Fixture.getDefaultDatabase
25-
import static Fixture.getDefaultDatabaseName
2624
import static Fixture.initializeCollection
2725

2826
class FunctionalSpecification extends Specification {
2927
protected MongoDatabase database;
3028
protected MongoCollection<Document> collection;
3129

32-
def setupSpec() {
33-
Runtime.getRuntime().addShutdownHook { dropDatabase(getDefaultDatabaseName()) }
34-
dropDatabase(getDefaultDatabaseName())
35-
}
36-
37-
def cleanupSpec() {
38-
dropDatabase(getDefaultDatabaseName())
39-
}
40-
4130
def setup() {
4231
database = getDefaultDatabase()
4332
collection = initializeCollection(new MongoNamespace(database.getName(), getClass().getName()))

driver-core/src/test/functional/com/mongodb/ClusterFixture.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@
6060
public final class ClusterFixture {
6161
public static final String DEFAULT_URI = "mongodb://localhost:27017";
6262
public static final String MONGODB_URI_SYSTEM_PROPERTY_NAME = "org.mongodb.test.uri";
63+
private static final String DEFAULT_DATABASE_NAME = "JavaDriverTest";
6364

6465
private static ConnectionString connectionString;
6566
private static Cluster cluster;
6667
private static Cluster asyncCluster;
67-
private static String defaultDatabaseName = "DriverTest-1";
6868

6969
static {
7070
String mongoURIProperty = System.getProperty(MONGODB_URI_SYSTEM_PROPERTY_NAME);
@@ -78,7 +78,7 @@ private ClusterFixture() {
7878
}
7979

8080
public static String getDefaultDatabaseName() {
81-
return defaultDatabaseName;
81+
return DEFAULT_DATABASE_NAME;
8282
}
8383

8484
public static boolean clusterIsType(final ClusterType clusterType) {
@@ -107,7 +107,7 @@ static class ShutdownHook extends Thread {
107107
@Override
108108
public void run() {
109109
if (cluster != null) {
110-
new DropDatabaseOperation(defaultDatabaseName).execute(getBinding());
110+
new DropDatabaseOperation(getDefaultDatabaseName()).execute(getBinding());
111111
cluster.close();
112112
}
113113
}

driver-core/src/test/functional/com/mongodb/client/test/CollectionHelper.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.mongodb.client.test;
1818

19+
import com.mongodb.CommandFailureException;
1920
import com.mongodb.MongoCursor;
2021
import com.mongodb.MongoNamespace;
2122
import com.mongodb.WriteConcern;
@@ -55,7 +56,13 @@ public static void dropDatabase(final String name) {
5556
if (name == null) {
5657
return;
5758
}
58-
new DropDatabaseOperation(name).execute(getBinding());
59+
try {
60+
new DropDatabaseOperation(name).execute(getBinding());
61+
} catch (CommandFailureException e) {
62+
if (!e.getErrorMessage().contains("ns not found")) {
63+
throw e;
64+
}
65+
}
5966
}
6067

6168
public void create(final CreateCollectionOptions options) {

driver-rx/src/test/functional/com/mongodb/async/rx/client/Fixture.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.mongodb.async.rx.client;
1818

19+
import com.mongodb.CommandFailureException;
1920
import com.mongodb.MongoNamespace;
2021
import org.mongodb.Document;
2122
import rx.Observable;
@@ -29,24 +30,21 @@
2930
*/
3031
public final class Fixture {
3132
private static MongoClientImpl mongoClient;
32-
private static String defaultDatabaseName;
33+
private static final String DEFAULT_DATABASE_NAME = "JavaDriverTest";
3334

3435
private Fixture() {
3536
}
3637

3738
public static synchronized MongoClient getMongoClient() {
3839
if (mongoClient == null) {
3940
mongoClient = new MongoClientImpl(com.mongodb.async.client.Fixture.getMongoClient());
41+
Runtime.getRuntime().addShutdownHook(new ShutdownHook());
4042
}
4143
return mongoClient;
4244
}
4345

44-
4546
public static synchronized String getDefaultDatabaseName() {
46-
if (defaultDatabaseName == null) {
47-
defaultDatabaseName = "DriverTest-" + System.nanoTime();
48-
}
49-
return defaultDatabaseName;
47+
return DEFAULT_DATABASE_NAME;
5048
}
5149

5250
public static MongoDatabase getDefaultDatabase() {
@@ -58,11 +56,36 @@ public static MongoCollection<Document> initializeCollection(final MongoNamespac
5856
return getMongoClient().getDatabase(namespace.getDatabaseName()).getCollection(namespace.getCollectionName());
5957
}
6058

59+
public static void dropDatabase(final String name) {
60+
com.mongodb.async.client.Fixture.dropDatabase(name);
61+
}
62+
63+
public static void drop(final MongoNamespace namespace) {
64+
com.mongodb.async.client.Fixture.drop(namespace);
65+
}
66+
6167
public static <T> T get(final Observable<T> observable) {
6268
return observable.timeout(90, SECONDS).toBlocking().first();
6369
}
6470

6571
public static <T> List<T> getAsList(final Observable<T> observable) {
6672
return observable.timeout(90, SECONDS).toList().toBlocking().first();
6773
}
74+
75+
static class ShutdownHook extends Thread {
76+
@Override
77+
public void run() {
78+
if (mongoClient != null) {
79+
if (mongoClient != null) {
80+
try {
81+
dropDatabase(getDefaultDatabaseName());
82+
} catch (CommandFailureException e) {
83+
// ignore
84+
}
85+
}
86+
mongoClient.close();
87+
mongoClient = null;
88+
}
89+
}
90+
}
6891
}

driver-rx/src/test/functional/com/mongodb/async/rx/client/ForEachSpecification.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ class ForEachSpecification extends FunctionalSpecification {
3838

3939
def 'should call onNext for each document and then complete'() {
4040
given:
41+
4142
def documents = [new Document(), new Document()]
4243
get(collection.insert(documents[0]))
44+
sleep(1000)
4345
get(collection.insert(documents[1]))
4446

4547
expect:

driver-rx/src/test/functional/com/mongodb/async/rx/client/FunctionalSpecification.groovy

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,14 @@ import com.mongodb.MongoNamespace
1919
import org.mongodb.Document
2020
import spock.lang.Specification
2121

22+
import static Fixture.drop
2223
import static Fixture.getDefaultDatabase
2324
import static Fixture.initializeCollection
24-
import static com.mongodb.async.client.Fixture.drop
25-
import static com.mongodb.async.client.Fixture.dropDatabase
26-
import static com.mongodb.async.client.Fixture.getDefaultDatabaseName
2725

2826
class FunctionalSpecification extends Specification {
2927
protected MongoDatabase database;
3028
protected MongoCollection<Document> collection;
3129

32-
def setupSpec() {
33-
Runtime.getRuntime().addShutdownHook { dropDatabase(getDefaultDatabaseName()) }
34-
dropDatabase(getDefaultDatabaseName())
35-
}
36-
37-
def cleanupSpec() {
38-
dropDatabase(getDefaultDatabaseName())
39-
}
40-
4130
def setup() {
4231
database = getDefaultDatabase()
4332
collection = initializeCollection(new MongoNamespace(database.getName(), getClass().getName()))

driver/src/test/unit/com/mongodb/Fixture.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
public final class Fixture {
2929
public static final String DEFAULT_URI = "mongodb://localhost:27017";
3030
public static final String MONGODB_URI_SYSTEM_PROPERTY_NAME = "org.mongodb.test.uri";
31+
private static final String DEFAULT_DATABASE_NAME = "JavaDriverTest";
3132

3233
private static MongoClient mongoClient;
3334
private static MongoClientURI mongoClientURI;
3435
private static DB defaultDatabase;
35-
private static String defaultDatabaseName = "DriverTest-" + System.nanoTime();
3636

3737
private Fixture() {
3838
}
@@ -52,13 +52,13 @@ public static synchronized MongoClient getMongoClient() {
5252

5353
public static synchronized DB getDefaultDatabase() {
5454
if (defaultDatabase == null) {
55-
defaultDatabase = getMongoClient().getDB(defaultDatabaseName);
55+
defaultDatabase = getMongoClient().getDB(getDefaultDatabaseName());
5656
}
5757
return defaultDatabase;
5858
}
5959

60-
public static synchronized String getDefaultDatabaseName() {
61-
return defaultDatabaseName;
60+
public static String getDefaultDatabaseName() {
61+
return DEFAULT_DATABASE_NAME;
6262
}
6363

6464
static class ShutdownHook extends Thread {

0 commit comments

Comments
 (0)