Skip to content

Commit 674a5a0

Browse files
author
rstam
committed
CSHARP-797: Add unit test for wtimeout *and* duplicate key that runs when connected to a replica set.
1 parent 3cb3ddc commit 674a5a0

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

MongoDB.DriverUnitTests/Operations/BulkWriteOperationTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,6 +1136,32 @@ public void TestW2AgainstStandalone(bool ordered)
11361136
}
11371137
}
11381138

1139+
[Test]
1140+
public void TestWTimeoutPlusDuplicateKeyError()
1141+
{
1142+
if (_primary.InstanceType == MongoServerInstanceType.ReplicaSetMember)
1143+
{
1144+
_collection.Drop();
1145+
1146+
var bulk = _collection.InitializeUnorderedBulkOperation();
1147+
bulk.Insert(new BsonDocument("_id", 1));
1148+
bulk.Insert(new BsonDocument("_id", 1));
1149+
var exception = Assert.Throws<BulkWriteException>(() => bulk.Execute(new WriteConcern { W = 999, WTimeout = TimeSpan.FromMilliseconds(1) }));
1150+
var result = exception.Result;
1151+
1152+
var expectedResult = new ExpectedResult { InsertedCount = 1, RequestCount = 2 };
1153+
CheckExpectedResult(expectedResult, result);
1154+
1155+
var writeErrors = exception.WriteErrors;
1156+
Assert.AreEqual(1, writeErrors.Count);
1157+
Assert.AreEqual(11000, writeErrors[0].Code);
1158+
Assert.AreEqual(1, writeErrors[0].Index);
1159+
1160+
var writeConcernError = exception.WriteConcernError;
1161+
Assert.AreEqual(64, writeConcernError.Code);
1162+
}
1163+
}
1164+
11391165
// private methods
11401166
private void CheckExpectedResult(ExpectedResult expectedResult, BulkWriteResult result)
11411167
{

0 commit comments

Comments
 (0)