Skip to content

Commit 823b2ad

Browse files
committed
Simplified tests
1 parent 5ea195a commit 823b2ad

File tree

1 file changed

+70
-58
lines changed

1 file changed

+70
-58
lines changed

tests/MongoDB.Driver.Tests/MultipleRegistriesTests.cs

Lines changed: 70 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,14 @@ public void TestSerialization()
3434
RequireServer.Check();
3535

3636
{
37-
var client = DriverTestConfiguration.CreateMongoClient();
38-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
39-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
40-
var collection = db.GetCollection<Person>(DriverTestConfiguration.CollectionNamespace.CollectionName);
41-
var bsonCollection =
42-
db.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
37+
var client = CreateClient();
38+
var collection = GetTypedCollection<Person>(client);
39+
var bsonCollection = GetUntypedCollection(client);
4340

4441
var person = new Person { Id = ObjectId.Parse("6797b56bf5495bf53aa3078f"), Name = "Mario", Age = 24 };
4542
collection.InsertOne(person);
4643

47-
var retrieved = bsonCollection.FindSync("{}").ToList().Single();
44+
var retrieved = bsonCollection.FindSync(FilterDefinition<BsonDocument>.Empty).ToList().Single();
4845
var toString = retrieved.ToString();
4946

5047
var expectedVal =
@@ -57,24 +54,21 @@ public void TestSerialization()
5754
var customDomain = BsonSerializer.CreateSerializationDomain();
5855
customDomain.RegisterSerializer(new CustomStringSerializer());
5956

60-
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => (c as IInheritableMongoClientSettings).SerializationDomain = customDomain);
61-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
62-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
63-
var collection = db.GetCollection<Person>(DriverTestConfiguration.CollectionNamespace.CollectionName);
64-
var bsonCollection =
65-
db.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
57+
var client = CreateClientWithDomain(customDomain);
58+
var collection = GetTypedCollection<Person>(client);
59+
var bsonCollection = GetUntypedCollection(client);
6660

6761
var person = new Person { Id = ObjectId.Parse("6797b56bf5495bf53aa3078f"), Name = "Mario", Age = 24 };
6862
collection.InsertOne(person);
6963

70-
var retrievedAsBson = bsonCollection.FindSync("{}").ToList().Single();
64+
var retrievedAsBson = bsonCollection.FindSync(FilterDefinition<BsonDocument>.Empty).ToList().Single();
7165
var toString = retrievedAsBson.ToString();
7266

7367
var expectedVal =
7468
"""{ "_id" : { "$oid" : "6797b56bf5495bf53aa3078f" }, "Name" : "Mariotest", "Age" : 24 }""";
7569
Assert.Equal(expectedVal, toString);
7670

77-
var retrievedTyped = collection.FindSync("{}").ToList().Single();
71+
var retrievedTyped = collection.FindSync(FilterDefinition<Person>.Empty).ToList().Single();
7872
Assert.Equal("Mario", retrievedTyped.Name);
7973
}
8074
}
@@ -85,10 +79,8 @@ public void TestDeserialization()
8579
RequireServer.Check();
8680

8781
{
88-
var client = DriverTestConfiguration.CreateMongoClient();
89-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
90-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
91-
var collection = db.GetCollection<Person1>(DriverTestConfiguration.CollectionNamespace.CollectionName);
82+
var client = CreateClient();
83+
var collection = GetTypedCollection<Person1>(client);
9284

9385
var person = new Person1 { Id = ObjectId.Parse("6797b56bf5495bf53aa3078f"), Name = "Mariotest", Age = 24 };
9486
collection.InsertOne(person);
@@ -98,11 +90,10 @@ public void TestDeserialization()
9890
var customDomain = BsonSerializer.CreateSerializationDomain();
9991
customDomain.RegisterSerializer(new CustomStringSerializer());
10092

101-
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => (c as IInheritableMongoClientSettings).SerializationDomain = customDomain);
102-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
103-
var collection = db.GetCollection<Person>(DriverTestConfiguration.CollectionNamespace.CollectionName);
93+
var client = CreateClientWithDomain(customDomain, dropCollection: false);
94+
var collection = GetTypedCollection<Person>(client);
10495

105-
var retrievedTyped = collection.FindSync("{}").ToList().Single();
96+
var retrievedTyped = collection.FindSync(FilterDefinition<Person>.Empty).ToList().Single();
10697
Assert.Equal("Mario", retrievedTyped.Name);
10798
}
10899
}
@@ -115,16 +106,14 @@ public void TestLinq()
115106
var customDomain = BsonSerializer.CreateSerializationDomain();
116107
customDomain.RegisterSerializer(new CustomStringSerializer());
117108

118-
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => (c as IInheritableMongoClientSettings).SerializationDomain = customDomain);
119-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
120-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
121-
var collection = db.GetCollection<Person>(DriverTestConfiguration.CollectionNamespace.CollectionName);
122-
var untypedCollection = db.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
109+
var client = CreateClientWithDomain(customDomain);
110+
var collection = GetTypedCollection<Person>(client);
111+
var untypedCollection = GetUntypedCollection(client);
123112

124113
var person = new Person { Id = ObjectId.Parse("6797b56bf5495bf53aa3078f"), Name = "Mario", Age = 24 };
125114
collection.InsertOne(person);
126115

127-
var retrievedAsBson = untypedCollection.FindSync("{}").ToList().Single();
116+
var retrievedAsBson = untypedCollection.FindSync(FilterDefinition<BsonDocument>.Empty).ToList().Single();
128117
var toString = retrievedAsBson.ToString();
129118

130119
var expectedVal =
@@ -152,16 +141,14 @@ public void TestConventions()
152141
m => m.SetElementName(m.MemberName.ToLower()));
153142
customDomain.ConventionRegistry.Register("myPack", pack, t => t == typeof(Person));
154143

155-
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => (c as IInheritableMongoClientSettings).SerializationDomain = customDomain);
156-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
157-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
158-
var collection = db.GetCollection<Person>(DriverTestConfiguration.CollectionNamespace.CollectionName);
159-
var untypedCollection = db.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
144+
var client = CreateClientWithDomain(customDomain);
145+
var collection = GetTypedCollection<Person>(client);
146+
var untypedCollection = GetUntypedCollection(client);
160147

161148
var person = new Person { Name = "Mario", Age = 24 }; //Id is not set, so the custom ObjectIdGenerator should be used
162149
collection.InsertOne(person);
163150

164-
var retrievedAsBson = untypedCollection.FindSync("{}").ToList().Single();
151+
var retrievedAsBson = untypedCollection.FindSync(FilterDefinition<BsonDocument>.Empty).ToList().Single();
165152
var toString = retrievedAsBson.ToString();
166153

167154
var expectedVal =
@@ -194,44 +181,69 @@ public void TestDiscriminators()
194181
cm.SetDiscriminator("dp2");
195182
});
196183

197-
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => (c as IInheritableMongoClientSettings).SerializationDomain = customDomain);
198-
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
199-
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
200-
var collection = db.GetCollection<BasePerson>(DriverTestConfiguration.CollectionNamespace.CollectionName);
201-
var untypedCollection = db.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
184+
var client = CreateClientWithDomain(customDomain);
185+
var collection = GetTypedCollection<BasePerson>(client);
202186

203187
var bp1 = new DerivedPerson1 { Name = "Alice", Age = 30, ExtraField1 = "Field1" };
204188
var bp2 = new DerivedPerson2 { Name = "Bob", Age = 40, ExtraField2 = "Field2" };
205189
collection.InsertMany(new BasePerson[] { bp1, bp2 });
206190

207-
var test1 = collection.Aggregate().OfType<DerivedPerson1>().Single();
208-
var test2 = collection.Aggregate().OfType<DerivedPerson2>().Single();
191+
//Aggregate with OfType
192+
var retrievedDerivedPerson1 = collection.Aggregate().OfType<DerivedPerson1>().Single();
193+
var retrievedDerivedPerson2 = collection.Aggregate().OfType<DerivedPerson2>().Single();
209194

210-
Assert.Equal(bp1.Id, test1.Id);
211-
Assert.Equal(bp2.Id, test2.Id);
195+
Assert.Equal(bp1.Id, retrievedDerivedPerson1.Id);
196+
Assert.Equal(bp2.Id, retrievedDerivedPerson2.Id);
212197

213-
var a1 = collection.AsQueryable().AppendStage(PipelineStageDefinitionBuilder.OfType<BasePerson, DerivedPerson1>())
198+
//AppendStage with OfType
199+
retrievedDerivedPerson1 = collection.AsQueryable().AppendStage(PipelineStageDefinitionBuilder.OfType<BasePerson, DerivedPerson1>())
214200
.OfType<DerivedPerson1>().Single();
215-
var a2 = collection.AsQueryable().AppendStage(PipelineStageDefinitionBuilder.OfType<BasePerson, DerivedPerson2>())
201+
retrievedDerivedPerson2 = collection.AsQueryable().AppendStage(PipelineStageDefinitionBuilder.OfType<BasePerson, DerivedPerson2>())
216202
.OfType<DerivedPerson2>().Single();
217203

218-
Assert.Equal(bp1.Id, a1.Id);
219-
Assert.Equal(bp2.Id, a2.Id);
204+
Assert.Equal(bp1.Id, retrievedDerivedPerson1.Id);
205+
Assert.Equal(bp2.Id, retrievedDerivedPerson2.Id);
220206

221-
var res1 = collection.AsQueryable().OfType<DerivedPerson1>().Single();
222-
var res2 = collection.AsQueryable().OfType<DerivedPerson2>().Single();
207+
//LINQ with OfType
208+
retrievedDerivedPerson1 = collection.AsQueryable().OfType<DerivedPerson1>().Single();
209+
retrievedDerivedPerson2 = collection.AsQueryable().OfType<DerivedPerson2>().Single();
223210

224-
Assert.Equal(bp1.Id, res1.Id);
225-
Assert.Equal(bp2.Id, res2.Id);
211+
Assert.Equal(bp1.Id, retrievedDerivedPerson1.Id);
212+
Assert.Equal(bp2.Id, retrievedDerivedPerson2.Id);
226213

227-
var filter1 = Builders<BasePerson>.Filter.OfType<DerivedPerson1>();
228-
var dp1 = collection.FindSync(filter1).Single();
214+
//Find with OfType
215+
var retrievedBasePerson1 = collection.FindSync(Builders<BasePerson>.Filter.OfType<DerivedPerson1>()).Single();
216+
var retrievedBasePerson2 = collection.FindSync(Builders<BasePerson>.Filter.OfType<DerivedPerson2>()).Single();
229217

230-
var filter2 = Builders<BasePerson>.Filter.OfType<DerivedPerson2>();
231-
var dp2 = collection.FindSync(filter2).Single();
218+
Assert.Equal(bp1.Id, retrievedBasePerson1.Id);
219+
Assert.Equal(bp2.Id, retrievedBasePerson2.Id);
220+
}
221+
222+
private static IMongoCollection<T> GetTypedCollection<T>(IMongoClient client) =>
223+
client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName)
224+
.GetCollection<T>(DriverTestConfiguration.CollectionNamespace.CollectionName);
232225

233-
Assert.Equal(bp1.Id, dp1.Id);
234-
Assert.Equal(bp2.Id, dp2.Id);
226+
private static IMongoCollection<BsonDocument> GetUntypedCollection(IMongoClient client) =>
227+
client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName)
228+
.GetCollection<BsonDocument>(DriverTestConfiguration.CollectionNamespace.CollectionName);
229+
230+
private static IMongoClient CreateClientWithDomain(IBsonSerializationDomain domain, bool dropCollection = true)
231+
{
232+
var client = DriverTestConfiguration.CreateMongoClient((MongoClientSettings c) => ((IInheritableMongoClientSettings)c).SerializationDomain = domain);
233+
if (dropCollection)
234+
{
235+
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
236+
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
237+
}
238+
return client;
239+
}
240+
241+
private static IMongoClient CreateClient()
242+
{
243+
var client = DriverTestConfiguration.CreateMongoClient();
244+
var db = client.GetDatabase(DriverTestConfiguration.DatabaseNamespace.DatabaseName);
245+
db.DropCollection(DriverTestConfiguration.CollectionNamespace.CollectionName);
246+
return client;
235247
}
236248

237249
public class Person

0 commit comments

Comments
 (0)