Skip to content

Commit e69dd07

Browse files
author
rstam
committed
CSHARP-797: Changes in response to code review comments and getting tests to pass against server 2.4.
1 parent 9f8d37e commit e69dd07

File tree

5 files changed

+92
-69
lines changed

5 files changed

+92
-69
lines changed

MongoDB.Driver/Operations/BulkInsertOperationEmulator.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,15 @@ protected override BulkWriteBatchResult EmulateSingleRequest(MongoConnection con
5454
_args.WriterSettings);
5555
var operation = new InsertOpcodeOperation(operationArgs);
5656

57-
WriteConcernResult writeConcernResult;
57+
WriteConcernResult writeConcernResult = null;
5858
WriteConcernException writeConcernException = null;
5959
try
6060
{
61-
writeConcernResult = operation.Execute(connection).First();
61+
var operationResult = operation.Execute(connection);
62+
if (operationResult != null)
63+
{
64+
writeConcernResult = operationResult.First();
65+
}
6266
}
6367
catch (WriteConcernException ex)
6468
{

MongoDB.Driver/Operations/BulkWriteBatchResult.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ public static BulkWriteBatchResult Create(
250250
{
251251
var processedRequests = new[] { request };
252252
var unprocessedRequests = Enumerable.Empty<WriteRequest>();
253-
var upsertId = writeConcernResult.Upserted;
253+
var upsertId = (writeConcernResult == null) ? null : writeConcernResult.Upserted;
254254
var upserts = (upsertId == null) ? Enumerable.Empty<BulkWriteUpsert>() : new[] { new BulkWriteUpsert(0, upsertId) };
255255
var writeErrors = __noWriteErrors;
256256
WriteConcernError writeConcernError = null;
@@ -269,7 +269,7 @@ public static BulkWriteBatchResult Create(
269269
}
270270
}
271271

272-
var documentsAffected = writeConcernResult.DocumentsAffected;
272+
var documentsAffected = (writeConcernResult == null) ? 0 : writeConcernResult.DocumentsAffected;
273273
if (request.RequestType == WriteRequestType.Insert && writeErrors.Count == 0)
274274
{
275275
documentsAffected = 1; // note: DocumentsAffected is 0 for inserts
@@ -289,7 +289,7 @@ public static BulkWriteBatchResult Create(
289289
break;
290290
case WriteRequestType.Update:
291291
matchedCount = documentsAffected - upserts.Count();
292-
modifiedCount = documentsAffected - upserts.Count();
292+
modifiedCount = 0; // getLasterror does not report this value
293293
break;
294294
}
295295

MongoDB.DriverUnitTests/Builders/UpdateBuilderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ public void TestReplace()
849849
Assert.AreEqual(expected, update.ToJson());
850850
}
851851

852-
[Explicit]
852+
[Ignore]
853853
[Test]
854854
public void TestReplaceWithInvalidFieldName()
855855
{

MongoDB.DriverUnitTests/MongoCollectionTests.cs

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -318,24 +318,35 @@ public void TestBulkWrite()
318318
[Test]
319319
public void TestBulkWriteCounts()
320320
{
321-
_collection.Drop();
322-
var result = _collection.BulkWrite(new BulkWriteArgs
321+
using (_server.RequestStart(null, ReadPreference.Primary))
323322
{
324-
IsOrdered = true,
325-
WriteConcern = WriteConcern.Acknowledged,
326-
Requests = new WriteRequest[]
323+
var serverInstance = _server.RequestConnection.ServerInstance;
324+
325+
_collection.Drop();
326+
var result = _collection.BulkWrite(new BulkWriteArgs
327327
{
328-
new InsertRequest(typeof (BsonDocument), new BsonDocument("x", 1)),
329-
new UpdateRequest(Query.EQ("x", 1), Update.Set("x", 2)),
330-
new DeleteRequest(Query.EQ("x", 2))
328+
IsOrdered = true,
329+
WriteConcern = WriteConcern.Acknowledged,
330+
Requests = new WriteRequest[]
331+
{
332+
new InsertRequest(typeof (BsonDocument), new BsonDocument("x", 1)),
333+
new UpdateRequest(Query.EQ("x", 1), Update.Set("x", 2)),
334+
new DeleteRequest(Query.EQ("x", 2))
335+
}
336+
});
337+
338+
var expectedModifiedCount = 1;
339+
if (!serverInstance.Supports(FeatureId.WriteCommands))
340+
{
341+
expectedModifiedCount = 0;
331342
}
332-
});
333343

334-
Assert.AreEqual(1, result.DeletedCount);
335-
Assert.AreEqual(1, result.InsertedCount);
336-
Assert.AreEqual(1, result.ModifiedCount);
337-
Assert.AreEqual(3, result.RequestCount);
338-
Assert.AreEqual(1, result.MatchedCount);
344+
Assert.AreEqual(1, result.DeletedCount);
345+
Assert.AreEqual(1, result.InsertedCount);
346+
Assert.AreEqual(expectedModifiedCount, result.ModifiedCount);
347+
Assert.AreEqual(3, result.RequestCount);
348+
Assert.AreEqual(1, result.MatchedCount);
349+
}
339350
}
340351

341352
[Test]
@@ -361,9 +372,9 @@ public void TestBulkWriteCountsWithUpsert()
361372
});
362373

363374
var expectedModifiedCount = 1;
364-
if (serverInstance.BuildInfo.Version < new Version(2, 5, 5))
375+
if (!serverInstance.Supports(FeatureId.WriteCommands))
365376
{
366-
expectedModifiedCount = 2;
377+
expectedModifiedCount = 0;
367378
}
368379

369380
Assert.AreEqual(0, result.DeletedCount);

0 commit comments

Comments
 (0)