Skip to content

Commit 04d4700

Browse files
committed
Don't use DropDatabase in tests because it's slow and in some server versions causes unwanted elections.
1 parent 6619c90 commit 04d4700

File tree

3 files changed

+35
-29
lines changed

3 files changed

+35
-29
lines changed

MongoDB.DriverUnitTests/Configuration.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static Configuration()
4646

4747
__testClient = new MongoClient(clientSettings);
4848
__testServer = __testClient.GetServer();
49-
__testDatabase = __testServer.GetDatabase(mongoUrl.DatabaseName ?? "csharpdriverunittests");
49+
__testDatabase = __testServer.GetDatabase(GetDatabaseName(mongoUrl));
5050
__testCollection = __testDatabase.GetCollection("testcollection");
5151

5252
// connect early so BuildInfo will be populated
@@ -159,6 +159,18 @@ public static IDisposable StopReplication(MongoServerInstance secondary)
159159
}
160160
}
161161

162+
// private methods
163+
private static string GetDatabaseName(MongoUrl mongoUrl)
164+
{
165+
if (mongoUrl.DatabaseName != null)
166+
{
167+
return mongoUrl.DatabaseName;
168+
}
169+
170+
var timestamp = DateTime.Now.ToString("MMddHHmm");
171+
return "Tests" + timestamp;
172+
}
173+
162174
// nested types
163175
private class ReplicationRestarter : IDisposable
164176
{

MongoDB.DriverUnitTests/MongoDatabaseTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public void Setup()
3535
_server = Configuration.TestServer;
3636
_primary = Configuration.TestServer.Primary;
3737
_database = Configuration.TestDatabase;
38-
_database.Drop();
3938
}
4039

4140
// TODO: more tests for MongoDatabase
@@ -256,11 +255,12 @@ public void TestGetCollectionGeneric()
256255
[Test]
257256
public void TestGetCollectionNames()
258257
{
259-
_database.Drop();
260-
_database.GetCollection("a").Insert(new BsonDocument("a", 1));
261-
_database.GetCollection("b").Insert(new BsonDocument("b", 1));
262-
_database.GetCollection("c").Insert(new BsonDocument("c", 1));
263-
var collectionNames = _database.GetCollectionNames();
258+
var databaseName = Configuration.TestDatabase.Name + "-TestGetCollectionNames";
259+
var database = _server.GetDatabase(databaseName);
260+
database.GetCollection("a").Insert(new BsonDocument("a", 1));
261+
database.GetCollection("b").Insert(new BsonDocument("b", 1));
262+
database.GetCollection("c").Insert(new BsonDocument("c", 1));
263+
var collectionNames = database.GetCollectionNames();
264264
Assert.AreEqual(new[] { "a", "b", "c" }, collectionNames.Where(n => n != "system.indexes"));
265265
}
266266

MongoDB.DriverUnitTests/MongoServerTests.cs

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public class MongoServerTests
2727
private MongoServer _server;
2828
private MongoDatabase _database;
2929
private MongoCollection<BsonDocument> _collection;
30-
private bool _isMasterSlavePair;
3130
private bool _isReplicaSet;
3231

3332
[TestFixtureSetUp]
@@ -37,11 +36,6 @@ public void Setup()
3736
_database = Configuration.TestDatabase;
3837
_collection = Configuration.TestCollection;
3938
_isReplicaSet = Configuration.TestServerIsReplicaSet;
40-
41-
var adminDatabase = _server.GetDatabase("admin");
42-
var commandResult = adminDatabase.RunCommand("getCmdLineOpts");
43-
var argv = commandResult.Response["argv"].AsBsonArray;
44-
_isMasterSlavePair = argv.Contains("--master") || argv.Contains("--slave");
4539
}
4640

4741
[Test]
@@ -100,28 +94,28 @@ public void TestCreateNoArgs()
10094
[Test]
10195
public void TestDatabaseExists()
10296
{
103-
if (!_isMasterSlavePair)
104-
{
105-
_database.Drop();
106-
Assert.IsFalse(_server.DatabaseExists(_database.Name));
107-
_collection.Insert(new BsonDocument("x", 1));
108-
Assert.IsTrue(_server.DatabaseExists(_database.Name));
109-
}
97+
var databaseName = Configuration.TestDatabase.Name + "-TestDatabaseExists";
98+
var database = _server.GetDatabase(databaseName);
99+
var collection = database.GetCollection("TestDatabaseExists");
100+
Assert.IsFalse(_server.DatabaseExists(databaseName));
101+
collection.Insert(new BsonDocument("x", 1));
102+
Assert.IsTrue(_server.DatabaseExists(databaseName));
110103
}
111104

112105
[Test]
106+
[RequiresServer(ServerTypes = ServerTypes.Standalone)]
113107
public void TestDropDatabase()
114108
{
115-
if (!_isMasterSlavePair)
116-
{
117-
_collection.Insert(new BsonDocument());
118-
var databaseNames = _server.GetDatabaseNames();
119-
Assert.IsTrue(databaseNames.Contains(_database.Name));
109+
var databaseName = Configuration.TestDatabase.Name + "-TestDropDatabase";
110+
var database = _server.GetDatabase(databaseName);
111+
var collection = database.GetCollection("TestDropDatabase");
112+
collection.Insert(new BsonDocument());
113+
var databaseNames = _server.GetDatabaseNames();
114+
Assert.IsTrue(databaseNames.Contains(databaseName));
120115

121-
var result = _server.DropDatabase(_database.Name);
122-
databaseNames = _server.GetDatabaseNames();
123-
Assert.IsFalse(databaseNames.Contains(_database.Name));
124-
}
116+
var result = _server.DropDatabase(databaseName);
117+
databaseNames = _server.GetDatabaseNames();
118+
Assert.IsFalse(databaseNames.Contains(databaseName));
125119
}
126120

127121
[Test]

0 commit comments

Comments
 (0)