Skip to content

Commit a196598

Browse files
committed
CSHARP-2597: Fix GridFS tests that fail intermittently because they were asserting incorrectly.
1 parent c03b87a commit a196598

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

tests/MongoDB.Driver.GridFS.Tests/Specifications/gridfs/GridFSUploadFromBytesTest.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ private void ParseOptions(BsonDocument options)
118118
public class GridFSUploadFromBytesTest : GridFSUploadFromBytesTestBase
119119
{
120120
// fields
121+
private DateTime _endTime;
121122
private ObjectId _referenceObjectId;
122123
private ObjectId _result;
123124
private DateTime _startTime;
@@ -141,20 +142,25 @@ protected override void Act(GridFSBucket bucket, bool async)
141142
{
142143
_result = InvokeMethod(bucket);
143144
}
145+
_endTime = DateTime.UtcNow;
144146
}
145147

146148
protected override void Assert(List<BsonDocument> filesCollectionDocuments, List<BsonDocument> chunks, List<BsonDocument> expectedFilesCollectionDocuments, List<BsonDocument> expectedChunks)
147149
{
148150
var filesCollectionDocument = filesCollectionDocuments.Single(e => e["_id"] == _result);
149-
var uploadDate = filesCollectionDocument["uploadDate"].ToUniversalTime();
150-
uploadDate.Should().BeCloseTo(_startTime, precision: 1000);
151+
var actualUploadDate = filesCollectionDocument["uploadDate"].AsBsonDateTime;
152+
var expectedUploadDateMin = new BsonDateTime(_startTime);
153+
var expectedUploadDateMax = new BsonDateTime(_endTime);
154+
actualUploadDate.MillisecondsSinceEpoch.Should().BeInRange(expectedUploadDateMin.MillisecondsSinceEpoch, expectedUploadDateMax.MillisecondsSinceEpoch);
151155

152156
base.Assert(filesCollectionDocuments, chunks, expectedFilesCollectionDocuments, expectedChunks);
153157
}
154158

155159
protected override void Assert(GridFSBucket bucket)
156160
{
157-
_result.Timestamp.Should().BeInRange(_referenceObjectId.Timestamp, _referenceObjectId.Timestamp + 1);
161+
var expectedTimestampMin = new ObjectId(_startTime, 0, 0, 0).Timestamp;
162+
var expectedTimestampMax = new ObjectId(_endTime, 0, 0, 0).Timestamp;
163+
_result.Timestamp.Should().BeInRange(expectedTimestampMin, expectedTimestampMax);
158164
_result.Machine.Should().Be(_referenceObjectId.Machine);
159165
_result.Pid.Should().Be(_referenceObjectId.Pid);
160166

0 commit comments

Comments
 (0)