Skip to content

Commit 64176ac

Browse files
author
rstam
committed
Implemented CSHARP-477. Added more unit tests for MongoServer.
1 parent cd627fe commit 64176ac

File tree

1 file changed

+115
-3
lines changed

1 file changed

+115
-3
lines changed

DriverUnitTests/Core/MongoServerTests.cs

Lines changed: 115 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,34 @@ public void Setup()
4545
_isMasterSlavePair = argv.Contains("--master") || argv.Contains("--slave");
4646
}
4747

48-
// TODO: more tests for MongoServer
48+
[Test]
49+
public void TestArbiters()
50+
{
51+
Assert.AreEqual(0, _server.Arbiters.Length);
52+
}
53+
54+
[Test]
55+
public void TestBuildInfo()
56+
{
57+
var versionZero = new Version(0, 0, 0, 0);
58+
var buildInfo = _server.BuildInfo;
59+
Assert.IsTrue(buildInfo.Bits == 32 || buildInfo.Bits == 64);
60+
Assert.AreNotEqual(versionZero, buildInfo.Version);
61+
}
62+
63+
[Test]
64+
public void TestCreateMongoServerSettings()
65+
{
66+
var settings = new MongoServerSettings
67+
{
68+
Server = new MongoServerAddress("localhost"),
69+
SafeMode = SafeMode.True
70+
};
71+
var server1 = MongoServer.Create(settings);
72+
var server2 = MongoServer.Create(settings);
73+
Assert.AreSame(server1, server2);
74+
Assert.AreEqual(settings, server1.Settings);
75+
}
4976

5077
[Test]
5178
public void TestCreateNoArgs()
@@ -85,6 +112,18 @@ public void TestDropDatabase()
85112
}
86113
}
87114

115+
[Test]
116+
public void TestFetchDBRef()
117+
{
118+
_collection.Drop();
119+
_collection.Insert(new BsonDocument { { "_id", 1 }, { "x", 2 } });
120+
var dbRef = new MongoDBRef(_database.Name, _collection.Name, 1);
121+
var document = _server.FetchDBRef(dbRef);
122+
Assert.AreEqual(2, document.ElementCount);
123+
Assert.AreEqual(1, document["_id"].AsInt32);
124+
Assert.AreEqual(2, document["x"].AsInt32);
125+
}
126+
88127
[Test]
89128
public void TestGetAllServers()
90129
{
@@ -101,9 +140,14 @@ public void TestGetAllServers()
101140
}
102141

103142
[Test]
104-
public void TestPing()
143+
public void TestGetDatabase()
105144
{
106-
_server.Ping();
145+
var settings = new MongoDatabaseSettings(_server, "test") { SlaveOk = true };
146+
var database1 = _server.GetDatabase(settings);
147+
var database2 = _server.GetDatabase(settings);
148+
Assert.AreSame(database1, database2);
149+
Assert.AreEqual("test", database1.Name);
150+
Assert.AreEqual(true, database1.Settings.SlaveOk);
107151
}
108152

109153
[Test]
@@ -112,6 +156,23 @@ public void TestGetDatabaseNames()
112156
var databaseNames = _server.GetDatabaseNames();
113157
}
114158

159+
[Test]
160+
public void TestInstance()
161+
{
162+
var instance = _server.Instance;
163+
Assert.IsNotNull(instance);
164+
Assert.IsTrue(instance.IsPrimary);
165+
}
166+
167+
[Test]
168+
public void TestInstances()
169+
{
170+
var instances = _server.Instances;
171+
Assert.IsNotNull(instances);
172+
Assert.AreEqual(1, instances.Length);
173+
Assert.IsTrue(instances[0].IsPrimary);
174+
}
175+
115176
[Test]
116177
public void TestIsDatabaseNameValid()
117178
{
@@ -122,57 +183,108 @@ public void TestIsDatabaseNameValid()
122183
Assert.IsFalse(_server.IsDatabaseNameValid(new string('x', 128), out message));
123184
}
124185

186+
[Test]
187+
public void TestPassives()
188+
{
189+
Assert.AreEqual(0, _server.Passives.Length);
190+
}
191+
192+
[Test]
193+
public void TestPing()
194+
{
195+
_server.Ping();
196+
}
197+
198+
[Test]
199+
public void TestPrimary()
200+
{
201+
var instance = _server.Primary;
202+
Assert.IsNotNull(instance);
203+
Assert.IsTrue(instance.IsPrimary);
204+
}
205+
125206
[Test]
126207
public void TestReconnect()
127208
{
128209
_server.Reconnect();
129210
Assert.AreEqual(MongoServerState.Connected, _server.State);
130211
}
131212

213+
[Test]
214+
public void TestReplicaSetName()
215+
{
216+
Assert.IsNull(_server.ReplicaSetName);
217+
}
218+
132219
[Test]
133220
public void TestRequestStart()
134221
{
222+
Assert.AreEqual(0, _server.RequestNestingLevel);
135223
using (_server.RequestStart(_database))
136224
{
225+
Assert.AreEqual(1, _server.RequestNestingLevel);
137226
}
227+
Assert.AreEqual(0, _server.RequestNestingLevel);
138228
}
139229

140230
[Test]
141231
public void TestRequestStartPrimary()
142232
{
233+
Assert.AreEqual(0, _server.RequestNestingLevel);
143234
using (_server.RequestStart(_database, _server.Primary))
144235
{
236+
Assert.AreEqual(1, _server.RequestNestingLevel);
145237
}
238+
Assert.AreEqual(0, _server.RequestNestingLevel);
146239
}
147240

148241
[Test]
149242
public void TestRequestStartPrimaryNested()
150243
{
244+
Assert.AreEqual(0, _server.RequestNestingLevel);
151245
using (_server.RequestStart(_database, _server.Primary))
152246
{
247+
Assert.AreEqual(1, _server.RequestNestingLevel);
153248
using (_server.RequestStart(_database, _server.Primary))
154249
{
250+
Assert.AreEqual(2, _server.RequestNestingLevel);
155251
}
252+
Assert.AreEqual(1, _server.RequestNestingLevel);
156253
}
254+
Assert.AreEqual(0, _server.RequestNestingLevel);
157255
}
158256

159257
[Test]
160258
public void TestRequestStartSlaveOk()
161259
{
260+
Assert.AreEqual(0, _server.RequestNestingLevel);
162261
using (_server.RequestStart(_database, true))
163262
{
263+
Assert.AreEqual(1, _server.RequestNestingLevel);
164264
}
265+
Assert.AreEqual(0, _server.RequestNestingLevel);
165266
}
166267

167268
[Test]
168269
public void TestRequestStartSlaveOkNested()
169270
{
271+
Assert.AreEqual(0, _server.RequestNestingLevel);
170272
using (_server.RequestStart(_database, false))
171273
{
274+
Assert.AreEqual(1, _server.RequestNestingLevel);
172275
using (_server.RequestStart(_database, true))
173276
{
277+
Assert.AreEqual(2, _server.RequestNestingLevel);
174278
}
279+
Assert.AreEqual(1, _server.RequestNestingLevel);
175280
}
281+
Assert.AreEqual(0, _server.RequestNestingLevel);
282+
}
283+
284+
[Test]
285+
public void TestSecondaries()
286+
{
287+
Assert.AreEqual(0, _server.Secondaries.Length);
176288
}
177289

178290
[Test]

0 commit comments

Comments
 (0)