Skip to content

Commit e3e70d8

Browse files
author
rstam
committed
Changed all the online unit tests to access the test server via a new Configuration class in preparation for eventually making the location of the test server configurable (it currently is hardcoded to localhost).
1 parent 4482436 commit e3e70d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+303
-195
lines changed

BsonUnitTests/Jira/CSharp275Tests.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,10 @@ public Test(string json, string iso)
7575
// test 2-digit year
7676
new Test("Mon, 1 Jan 01 11:22:33 EST", "2001-01-01T11:22:33-5:00"),
7777
new Test("Mon, 1 Jan 29 11:22:33 EST", "2029-01-01T11:22:33-5:00"),
78-
new Test("Wed, 1 Jan 30 11:22:33 EST", "1930-01-01T11:22:33-5:00"),
79-
new Test("Thu, 1 Jan 31 11:22:33 EST", "1931-01-01T11:22:33-5:00"),
78+
new Test("Tue, 1 Jan 30 11:22:33 EST", "2030-01-01T11:22:33-5:00"),
79+
new Test("Thu, 1 Jan 31 11:22:33 EST", "1931-01-01T11:22:33-5:00"), // starting in 2013 year 31 will become 2031 instead of 1931
80+
new Test("Fri, 1 Jan 32 11:22:33 EST", "1932-01-01T11:22:33-5:00"),
81+
new Test("Sun, 1 Jan 33 11:22:33 EST", "1933-01-01T11:22:33-5:00"),
8082
new Test("Fri, 1 Jan 99 11:22:33 EST", "1999-01-01T11:22:33-5:00"),
8183
// test time zones
8284
new Test("Mon, 10 Oct 2011 11:22:33 UT", "2011-10-10T11:22:33-00:00"),
@@ -134,7 +136,7 @@ public void TestParseDates()
134136
catch (Exception ex)
135137
{
136138
var message = string.Format("Error parsing: new Date(\"{0}\"). Message: {1}.", test.Json, ex.Message);
137-
Assert.Fail(message);
139+
Assert.Fail(message); // note: the test data for 2-digit years needs to be adjusted at the beginning of each year
138140
}
139141
var dateTime = document["date"].AsDateTime;
140142
var expected = DateTime.Parse(test.Iso).ToUniversalTime();

Driver/Core/MongoCollection.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,18 @@ public virtual CommandResult DropIndexByName(string indexName)
252252
{ "deleteIndexes", _name }, // not FullName
253253
{ "index", indexName }
254254
};
255-
return _database.RunCommand(command);
255+
try
256+
{
257+
return _database.RunCommand(command);
258+
}
259+
catch (MongoCommandException ex)
260+
{
261+
if (ex.CommandResult.ErrorMessage == "ns not found")
262+
{
263+
return ex.CommandResult;
264+
}
265+
throw;
266+
}
256267
}
257268

258269
/// <summary>

DriverOnlineTests/Configuration.cs

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/* Copyright 2010-2011 10gen Inc.
2+
*
3+
* Licensed under the Apache License, Version 2.0 (the "License");
4+
* you may not use this file except in compliance with the License.
5+
* You may obtain a copy of the License at
6+
*
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*
9+
* Unless required by applicable law or agreed to in writing, software
10+
* distributed under the License is distributed on an "AS IS" BASIS,
11+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
* See the License for the specific language governing permissions and
13+
* limitations under the License.
14+
*/
15+
16+
using System;
17+
using System.Collections.Generic;
18+
using System.Configuration;
19+
using System.Linq;
20+
using System.Text;
21+
22+
using MongoDB.Bson;
23+
using MongoDB.Driver;
24+
using MongoDB.Driver.Builders;
25+
26+
namespace MongoDB.DriverOnlineTests
27+
{
28+
/// <summary>
29+
/// A static class to handle online test configuration.
30+
/// </summary>
31+
public static class Configuration
32+
{
33+
// private static fields
34+
private static MongoServer __testServer;
35+
private static MongoDatabase __testDatabase;
36+
private static MongoCollection<BsonDocument> __testCollection;
37+
38+
// static constructor
39+
static Configuration()
40+
{
41+
var connectionString = "mongodb://localhost/?safe=true"; // TODO: make this configurable
42+
43+
var mongoUrlBuilder = new MongoUrlBuilder(connectionString);
44+
var serverSettings = mongoUrlBuilder.ToServerSettings();
45+
if (!serverSettings.SafeMode.Enabled)
46+
{
47+
serverSettings.SafeMode = SafeMode.True;
48+
}
49+
50+
__testServer = MongoServer.Create(serverSettings);
51+
__testDatabase = __testServer["csharpdriverunitests"];
52+
__testCollection = __testDatabase["testcollection"];
53+
}
54+
55+
// public static methods
56+
/// <summary>
57+
/// Gets the test collection.
58+
/// </summary>
59+
public static MongoCollection<BsonDocument> TestCollection
60+
{
61+
get { return __testCollection; }
62+
}
63+
64+
/// <summary>
65+
/// Gets the test database.
66+
/// </summary>
67+
public static MongoDatabase TestDatabase
68+
{
69+
get { return __testDatabase; }
70+
}
71+
72+
/// <summary>
73+
/// Gets the test server.
74+
/// </summary>
75+
public static MongoServer TestServer
76+
{
77+
get { return __testServer; }
78+
}
79+
80+
// public static methods
81+
/// <summary>
82+
/// Gets the test collection with a default document type of T.
83+
/// </summary>
84+
/// <typeparam name="T">The default document type.</typeparam>
85+
/// <returns>The collection.</returns>
86+
public static MongoCollection<T> GetTestCollection<T>()
87+
{
88+
return __testDatabase.GetCollection<T>(__testCollection.Name);
89+
}
90+
}
91+
}

DriverOnlineTests/Core/CommandResults/CollectionStatsResultTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class CollectionStatsResultTests
3535
[TestFixtureSetUp]
3636
public void Setup()
3737
{
38-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
39-
_database = _server["driveronlinetests"];
40-
_collection = _database["test"];
38+
_server = Configuration.TestServer;
39+
_database = Configuration.TestDatabase;
40+
_collection = Configuration.TestCollection;
4141
}
4242

4343
[Test]
@@ -49,7 +49,7 @@ public void Test()
4949

5050
var result = _collection.GetStats();
5151
Assert.IsTrue(result.Ok);
52-
Assert.AreEqual("driveronlinetests.test", result.Namespace);
52+
Assert.AreEqual(_collection.FullName, result.Namespace);
5353
Assert.AreEqual(1, result.ObjectCount);
5454
Assert.IsTrue(result.AverageObjectSize > 0.0);
5555
Assert.IsTrue(result.DataSize > 0);

DriverOnlineTests/Core/CommandResults/CommandResultTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public class CommandResultTests
3434
[TestFixtureSetUp]
3535
public void Setup()
3636
{
37-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
38-
_database = _server["onlinetests"];
37+
_server = Configuration.TestServer;
38+
_database = Configuration.TestDatabase;
3939
}
4040

4141
[Test]

DriverOnlineTests/Core/CommandResults/DatabaseStatsResultTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class DatabaseStatsResultTests
3535
[TestFixtureSetUp]
3636
public void Setup()
3737
{
38-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
39-
_database = _server["driveronlinetests"];
40-
_collection = _database["test"];
38+
_server = Configuration.TestServer;
39+
_database = Configuration.TestDatabase;
40+
_collection = Configuration.TestCollection;
4141
}
4242

4343
[Test]

DriverOnlineTests/Core/CommandResults/GetLastErrorResultTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ public class GetLastErrorResultTests
3636
[TestFixtureSetUp]
3737
public void Setup()
3838
{
39-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
40-
_database = _server["onlinetests"];
41-
_collection = _database["test"];
39+
_server = Configuration.TestServer;
40+
_database = Configuration.TestDatabase;
41+
_collection = Configuration.TestCollection;
4242
}
4343

4444
[Test]

DriverOnlineTests/Core/CommandResults/ValidateCollectionResultTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public class ValidateCollectionResultTests
3535
[TestFixtureSetUp]
3636
public void Setup()
3737
{
38-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
39-
_database = _server["driveronlinetests"];
40-
_collection = _database["test"];
38+
_server = Configuration.TestServer;
39+
_database = Configuration.TestDatabase;
40+
_collection = Configuration.TestCollection;
4141
}
4242

4343
[Test]
@@ -49,7 +49,7 @@ public void Test()
4949

5050
var result = _collection.Validate();
5151
Assert.IsTrue(result.Ok);
52-
Assert.AreEqual("driveronlinetests.test", result.Namespace);
52+
Assert.AreEqual(_collection.FullName, result.Namespace);
5353
}
5454
}
5555
}

DriverOnlineTests/Core/MongoCollectionTests.cs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ private class TestClass
4242
[TestFixtureSetUp]
4343
public void Setup()
4444
{
45-
_server = MongoServer.Create("mongodb://localhost/?safe=true");
45+
_server = Configuration.TestServer;
4646
_server.Connect();
47-
_database = _server["onlinetests"];
48-
_collection = _database["testcollection"];
47+
_database = Configuration.TestDatabase;
48+
_collection = Configuration.TestCollection;
4949
}
5050

5151
// TODO: more tests for MongoCollection
@@ -81,22 +81,22 @@ public void TestCountWithQuery()
8181
[Test]
8282
public void TestCreateCollection()
8383
{
84-
var collection = _database["testcreatecollection"];
84+
var collection = Configuration.TestCollection;
8585
collection.Drop();
8686
Assert.IsFalse(collection.Exists());
87-
_database.CreateCollection("testcreatecollection");
87+
_database.CreateCollection(collection.Name);
8888
Assert.IsTrue(collection.Exists());
8989
collection.Drop();
9090
}
9191

9292
[Test]
9393
public void TestCreateCollectionSetCappedSetMaxDocuments()
9494
{
95-
var collection = _database["testcreatecollection"];
95+
var collection = _database["cappedcollection"];
9696
collection.Drop();
9797
Assert.IsFalse(collection.Exists());
9898
var options = CollectionOptions.SetCapped(true).SetMaxSize(10000000).SetMaxDocuments(1000);
99-
_database.CreateCollection("testcreatecollection", options);
99+
_database.CreateCollection(collection.Name, options);
100100
Assert.IsTrue(collection.Exists());
101101
var stats = collection.GetStats();
102102
Assert.IsTrue(stats.IsCapped);
@@ -108,11 +108,11 @@ public void TestCreateCollectionSetCappedSetMaxDocuments()
108108
[Test]
109109
public void TestCreateCollectionSetCappedSetMaxSize()
110110
{
111-
var collection = _database["testcreatecollection"];
111+
var collection = _database["cappedcollection"];
112112
collection.Drop();
113113
Assert.IsFalse(collection.Exists());
114114
var options = CollectionOptions.SetCapped(true).SetMaxSize(10000000);
115-
_database.CreateCollection("testcreatecollection", options);
115+
_database.CreateCollection(collection.Name, options);
116116
Assert.IsTrue(collection.Exists());
117117
var stats = collection.GetStats();
118118
Assert.IsTrue(stats.IsCapped);
@@ -125,7 +125,9 @@ public void TestCreateIndex()
125125
{
126126
var expectedIndexVersion = (_server.BuildInfo.Version >= new Version(2, 0, 0)) ? 1 : 0;
127127

128-
_collection.DropAllIndexes();
128+
_collection.Insert(new BsonDocument("x", 1));
129+
_collection.DropAllIndexes(); // doesn't drop the index on _id
130+
129131
var indexes = _collection.GetIndexes();
130132
Assert.AreEqual(1, indexes.Count);
131133
Assert.AreEqual(false, indexes[0].DroppedDups);
@@ -134,11 +136,12 @@ public void TestCreateIndex()
134136
Assert.AreEqual(false, indexes[0].IsUnique);
135137
Assert.AreEqual(new BsonDocument("_id", 1), indexes[0].Key);
136138
Assert.AreEqual("_id_", indexes[0].Name);
137-
Assert.AreEqual("onlinetests.testcollection", indexes[0].Namespace);
139+
Assert.AreEqual(_collection.FullName, indexes[0].Namespace);
138140
Assert.AreEqual(expectedIndexVersion, indexes[0].Version);
139141

140142
_collection.DropAllIndexes();
141143
_collection.CreateIndex("x");
144+
142145
indexes = _collection.GetIndexes();
143146
Assert.AreEqual(2, indexes.Count);
144147
Assert.AreEqual(false, indexes[0].DroppedDups);
@@ -147,15 +150,15 @@ public void TestCreateIndex()
147150
Assert.AreEqual(false, indexes[0].IsUnique);
148151
Assert.AreEqual(new BsonDocument("_id", 1), indexes[0].Key);
149152
Assert.AreEqual("_id_", indexes[0].Name);
150-
Assert.AreEqual("onlinetests.testcollection", indexes[0].Namespace);
153+
Assert.AreEqual(_collection.FullName, indexes[0].Namespace);
151154
Assert.AreEqual(expectedIndexVersion, indexes[0].Version);
152155
Assert.AreEqual(false, indexes[1].DroppedDups);
153156
Assert.AreEqual(false, indexes[1].IsBackground);
154157
Assert.AreEqual(false, indexes[1].IsSparse);
155158
Assert.AreEqual(false, indexes[1].IsUnique);
156159
Assert.AreEqual(new BsonDocument("x", 1), indexes[1].Key);
157160
Assert.AreEqual("x_1", indexes[1].Name);
158-
Assert.AreEqual("onlinetests.testcollection", indexes[1].Namespace);
161+
Assert.AreEqual(_collection.FullName, indexes[1].Namespace);
159162
Assert.AreEqual(expectedIndexVersion, indexes[1].Version);
160163

161164
_collection.DropAllIndexes();
@@ -169,15 +172,15 @@ public void TestCreateIndex()
169172
Assert.AreEqual(false, indexes[0].IsUnique);
170173
Assert.AreEqual(new BsonDocument("_id", 1), indexes[0].Key);
171174
Assert.AreEqual("_id_", indexes[0].Name);
172-
Assert.AreEqual("onlinetests.testcollection", indexes[0].Namespace);
175+
Assert.AreEqual(_collection.FullName, indexes[0].Namespace);
173176
Assert.AreEqual(expectedIndexVersion, indexes[0].Version);
174177
Assert.AreEqual(true, indexes[1].DroppedDups);
175178
Assert.AreEqual(true, indexes[1].IsBackground);
176179
Assert.AreEqual(true, indexes[1].IsSparse);
177180
Assert.AreEqual(true, indexes[1].IsUnique);
178181
Assert.AreEqual(new BsonDocument { { "x", 1 }, { "y", -1 } }, indexes[1].Key);
179182
Assert.AreEqual("x_1_y_-1", indexes[1].Name);
180-
Assert.AreEqual("onlinetests.testcollection", indexes[1].Namespace);
183+
Assert.AreEqual(_collection.FullName, indexes[1].Namespace);
181184
Assert.AreEqual(expectedIndexVersion, indexes[1].Version);
182185
}
183186

@@ -631,7 +634,7 @@ public void TestGeoNear()
631634
.SetMaxDistance(100);
632635
var result = _collection.GeoNearAs(typeof(Place), Query.Null, 0.0, 0.0, 100, options);
633636
Assert.IsTrue(result.Ok);
634-
Assert.AreEqual("onlinetests.testcollection", result.Namespace);
637+
Assert.AreEqual(_collection.FullName, result.Namespace);
635638
Assert.IsTrue(result.Stats.AverageDistance >= 0.0);
636639
Assert.IsTrue(result.Stats.BTreeLocations >= 0);
637640
Assert.IsTrue(result.Stats.Duration >= TimeSpan.Zero);
@@ -668,7 +671,7 @@ public void TestGeoNearGeneric()
668671
.SetMaxDistance(100);
669672
var result = _collection.GeoNearAs<Place>(Query.Null, 0.0, 0.0, 100, options);
670673
Assert.IsTrue(result.Ok);
671-
Assert.AreEqual("onlinetests.testcollection", result.Namespace);
674+
Assert.AreEqual(_collection.FullName, result.Namespace);
672675
Assert.IsTrue(result.Stats.AverageDistance >= 0.0);
673676
Assert.IsTrue(result.Stats.BTreeLocations >= 0);
674677
Assert.IsTrue(result.Stats.Duration >= TimeSpan.Zero);
@@ -701,7 +704,7 @@ public void TestGeoNearSphericalFalse()
701704
var options = GeoNearOptions.SetSpherical(false);
702705
var result = _collection.GeoNearAs<Place>(Query.Null, -74.0, 40.74, 100, options);
703706
Assert.IsTrue(result.Ok);
704-
Assert.AreEqual("onlinetests.testcollection", result.Namespace);
707+
Assert.AreEqual(_collection.FullName, result.Namespace);
705708
Assert.IsTrue(result.Stats.AverageDistance >= 0.0);
706709
Assert.IsTrue(result.Stats.BTreeLocations >= 0);
707710
Assert.IsTrue(result.Stats.Duration >= TimeSpan.Zero);
@@ -748,7 +751,7 @@ public void TestGeoNearSphericalTrue()
748751
var options = GeoNearOptions.SetSpherical(true);
749752
var result = _collection.GeoNearAs<Place>(Query.Null, -74.0, 40.74, 100, options);
750753
Assert.IsTrue(result.Ok);
751-
Assert.AreEqual("onlinetests.testcollection", result.Namespace);
754+
Assert.AreEqual(_collection.FullName, result.Namespace);
752755
Assert.IsTrue(result.Stats.AverageDistance >= 0.0);
753756
Assert.IsTrue(result.Stats.BTreeLocations >= 0);
754757
Assert.IsTrue(result.Stats.Duration >= TimeSpan.Zero);
@@ -869,7 +872,7 @@ public void TestIndexExists()
869872
[Test]
870873
public void TestInsertBatchContinueOnError()
871874
{
872-
var collection = _database["continueonerror"];
875+
var collection = Configuration.TestCollection;
873876
collection.Drop();
874877
collection.CreateIndex(IndexKeys.Ascending("x"), IndexOptions.SetUnique(true));
875878

@@ -953,7 +956,7 @@ public void TestMapReduce()
953956
// this is Example 1 on p. 87 of MongoDB: The Definitive Guide
954957
// by Kristina Chodorow and Michael Dirolf
955958

956-
_collection.RemoveAll();
959+
_collection.Drop();
957960
_collection.Insert(new BsonDocument { { "A", 1 }, { "B", 2 } });
958961
_collection.Insert(new BsonDocument { { "B", 1 }, { "C", 2 } });
959962
_collection.Insert(new BsonDocument { { "X", 1 }, { "B", 2 } });

0 commit comments

Comments
 (0)