Skip to content

Commit d7209e2

Browse files
committed
CSHARP-1418: Make sure null GridFS options are replaced with default options everywhere.
1 parent 4d22ee5 commit d7209e2

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

src/MongoDB.Driver.GridFS.Tests/Specifications/gridfs/GridFSDownloadAsBytesAsyncTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public abstract class GridFSDownloadAsyncTestBase : GridFSTestBase
2525
{
2626
// fields
2727
protected ObjectId _id;
28-
protected GridFSDownloadOptions _options = new GridFSDownloadOptions();
28+
protected GridFSDownloadOptions _options = null;
2929

3030
// constructors
3131
public GridFSDownloadAsyncTestBase(BsonDocument data, BsonDocument testDefinition)
@@ -70,6 +70,7 @@ private void ParseOptions(BsonDocument options)
7070
{
7171
foreach (var option in options.Elements)
7272
{
73+
_options = _options ?? new GridFSDownloadOptions();
7374
switch (option.Name)
7475
{
7576
case "checkMD5":

src/MongoDB.Driver.GridFS.Tests/Specifications/gridfs/GridFSDownloadAsBytesByNameAsyncTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public abstract class GridFSGetByNameAsyncTestBase : GridFSTestBase
2525
{
2626
// fields
2727
protected string _filename;
28-
protected GridFSDownloadByNameOptions _options = new GridFSDownloadByNameOptions();
28+
protected GridFSDownloadByNameOptions _options = null;
2929

3030
// constructors
3131
public GridFSGetByNameAsyncTestBase(BsonDocument data, BsonDocument testDefinition)
@@ -70,6 +70,7 @@ private void ParseOptions(BsonDocument options)
7070
{
7171
foreach (var option in options.Elements)
7272
{
73+
_options = _options ?? new GridFSDownloadByNameOptions();
7374
switch (option.Name)
7475
{
7576
case "checkMD5":

src/MongoDB.Driver.GridFS.Tests/Specifications/gridfs/GridFSUploadFromBytesAsyncTest.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public abstract class GridFSPutAsyncTestBase : GridFSTestBase
2626
{
2727
// fields
2828
protected string _filename;
29-
protected GridFSUploadOptions _options = new GridFSUploadOptions();
29+
protected GridFSUploadOptions _options = null;
3030
protected byte[] _source;
3131

3232
// constructors
@@ -76,6 +76,7 @@ private void ParseOptions(BsonDocument options)
7676
{
7777
foreach (var option in options.Elements)
7878
{
79+
_options = _options ?? new GridFSUploadOptions();
7980
switch (option.Name)
8081
{
8182
case "aliases":

src/MongoDB.Driver.GridFS/GridFSBucket.cs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,14 @@ public ImmutableGridFSBucketOptions Options
100100
public Task<byte[]> DownloadAsBytesAsync(BsonValue id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
101101
{
102102
Ensure.IsNotNull(id, nameof(id));
103+
options = options ?? new GridFSDownloadOptions();
103104
return DownloadAsBytesHelperAsync(id, options, cancellationToken);
104105
}
105106

106107
/// <inheritdoc />
107108
public Task<byte[]> DownloadAsBytesAsync(ObjectId id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
108109
{
110+
options = options ?? new GridFSDownloadOptions();
109111
return DownloadAsBytesHelperAsync(new BsonObjectId(id), options, cancellationToken);
110112
}
111113

@@ -135,13 +137,15 @@ public ImmutableGridFSBucketOptions Options
135137
{
136138
Ensure.IsNotNull(id, nameof(id));
137139
Ensure.IsNotNull(destination, nameof(destination));
140+
options = options ?? new GridFSDownloadOptions();
138141
return DownloadToStreamHelperAsync(id, destination, options, cancellationToken);
139142
}
140143

141144
/// <inheritdoc />
142145
public Task DownloadToStreamAsync(ObjectId id, Stream destination, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
143146
{
144147
Ensure.IsNotNull(destination, nameof(destination));
148+
options = options ?? new GridFSDownloadOptions();
145149
return DownloadToStreamHelperAsync(new BsonObjectId(id), destination, options, cancellationToken);
146150
}
147151

@@ -220,12 +224,14 @@ public ImmutableGridFSBucketOptions Options
220224
public Task<GridFSDownloadStream> OpenDownloadStreamAsync(BsonValue id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
221225
{
222226
Ensure.IsNotNull(id, nameof(id));
227+
options = options ?? new GridFSDownloadOptions();
223228
return OpenDownloadStreamHelperAsync(id, options, cancellationToken);
224229
}
225230

226231
/// <inheritdoc />
227232
public Task<GridFSDownloadStream> OpenDownloadStreamAsync(ObjectId id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
228233
{
234+
options = options ?? new GridFSDownloadOptions();
229235
return OpenDownloadStreamHelperAsync(new BsonObjectId(id), options, cancellationToken);
230236
}
231237

@@ -366,7 +372,7 @@ private async Task CreateChunksCollectionIndexesAsync(IReadWriteBindingHandle bi
366372
await operation.ExecuteAsync(binding, cancellationToken).ConfigureAwait(false);
367373
}
368374

369-
private GridFSDownloadStream CreateDownloadStream(IReadBindingHandle binding, GridFSFileInfo fileInfo, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
375+
private GridFSDownloadStream CreateDownloadStream(IReadBindingHandle binding, GridFSFileInfo fileInfo, GridFSDownloadOptions options, CancellationToken cancellationToken = default(CancellationToken))
370376
{
371377
var checkMD5 = options.CheckMD5 ?? false;
372378
var seekable = options.Seekable ?? false;
@@ -423,7 +429,7 @@ private async Task CreateFilesCollectionIndexesAsync(IReadWriteBindingHandle bin
423429
}
424430
}
425431

426-
private async Task<byte[]> DownloadAsBytesHelperAsync(BsonValue id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
432+
private async Task<byte[]> DownloadAsBytesHelperAsync(BsonValue id, GridFSDownloadOptions options, CancellationToken cancellationToken = default(CancellationToken))
427433
{
428434
using (var binding = await GetSingleServerReadBindingAsync(cancellationToken).ConfigureAwait(false))
429435
{
@@ -446,7 +452,7 @@ private async Task CreateFilesCollectionIndexesAsync(IReadWriteBindingHandle bin
446452
}
447453
}
448454

449-
private async Task DownloadToStreamHelperAsync(IReadBindingHandle binding, GridFSFileInfo fileInfo, Stream destination, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
455+
private async Task DownloadToStreamHelperAsync(IReadBindingHandle binding, GridFSFileInfo fileInfo, Stream destination, GridFSDownloadOptions options, CancellationToken cancellationToken = default(CancellationToken))
450456
{
451457
var checkMD5 = options.CheckMD5 ?? false;
452458

@@ -467,7 +473,7 @@ private async Task CreateFilesCollectionIndexesAsync(IReadWriteBindingHandle bin
467473
}
468474
}
469475

470-
private async Task DownloadToStreamHelperAsync(BsonValue id, Stream destination, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
476+
private async Task DownloadToStreamHelperAsync(BsonValue id, Stream destination, GridFSDownloadOptions options, CancellationToken cancellationToken = default(CancellationToken))
471477
{
472478
using (var binding = await GetSingleServerReadBindingAsync(cancellationToken).ConfigureAwait(false))
473479
{
@@ -617,10 +623,8 @@ private async Task<bool> IsFilesCollectionEmptyAsync(IReadWriteBindingHandle bin
617623
return true;
618624
}
619625

620-
private async Task<GridFSDownloadStream> OpenDownloadStreamHelperAsync(BsonValue id, GridFSDownloadOptions options = null, CancellationToken cancellationToken = default(CancellationToken))
626+
private async Task<GridFSDownloadStream> OpenDownloadStreamHelperAsync(BsonValue id, GridFSDownloadOptions options, CancellationToken cancellationToken = default(CancellationToken))
621627
{
622-
options = options ?? new GridFSDownloadByNameOptions();
623-
624628
using (var binding = await GetSingleServerReadBindingAsync(cancellationToken).ConfigureAwait(false))
625629
{
626630
var fileInfo = await GetFileInfoAsync(binding, id, cancellationToken).ConfigureAwait(false);

0 commit comments

Comments
 (0)