@@ -8,6 +8,7 @@ package mongo
8
8
9
9
import (
10
10
"context"
11
+ "errors"
11
12
"fmt"
12
13
"os"
13
14
"testing"
@@ -200,16 +201,16 @@ func TestCollection_ReplaceTopologyError(t *testing.T) {
200
201
_ , err = coll .Aggregate (context .Background (), pipeline , options .Aggregate ())
201
202
require .Equal (t , err , ErrClientDisconnected )
202
203
203
- _ , err = coll .Count (context .Background (), nil )
204
+ _ , err = coll .Count (context .Background (), bsonx. Doc {} )
204
205
require .Equal (t , err , ErrClientDisconnected )
205
206
206
- _ , err = coll .CountDocuments (context .Background (), nil )
207
+ _ , err = coll .CountDocuments (context .Background (), bsonx. Doc {} )
207
208
require .Equal (t , err , ErrClientDisconnected )
208
209
209
210
_ , err = coll .EstimatedDocumentCount (context .Background ())
210
211
require .Equal (t , err , ErrClientDisconnected )
211
212
212
- _ , err = coll .Distinct (context .Background (), "x" , nil )
213
+ _ , err = coll .Distinct (context .Background (), "x" , bsonx. Doc {} )
213
214
require .Equal (t , err , ErrClientDisconnected )
214
215
215
216
_ , err = coll .Find (context .Background (), doc1 )
@@ -319,6 +320,95 @@ func TestCollection_InsertOne_WriteConcernError(t *testing.T) {
319
320
}
320
321
}
321
322
323
+ func TestCollection_NilDocumentError (t * testing.T ) {
324
+ if testing .Short () {
325
+ t .Skip ("skipping integration test in short mode" )
326
+ }
327
+
328
+ coll := createTestCollection (t , nil , nil )
329
+
330
+ _ , err := coll .InsertOne (context .Background (), nil )
331
+ require .Equal (t , err , ErrNilDocument )
332
+
333
+ _ , err = coll .InsertMany (context .Background (), nil )
334
+ require .Equal (t , err , ErrEmptySlice )
335
+
336
+ _ , err = coll .InsertMany (context .Background (), []interface {}{})
337
+ require .Equal (t , err , ErrEmptySlice )
338
+
339
+ _ , err = coll .InsertMany (context .Background (), []interface {}{bsonx.Doc {bsonx.Elem {"_id" , bsonx .Int32 (1 )}}, nil })
340
+ require .Equal (t , err , ErrNilDocument )
341
+
342
+ _ , err = coll .DeleteOne (context .Background (), nil )
343
+ require .Equal (t , err , ErrNilDocument )
344
+
345
+ _ , err = coll .DeleteMany (context .Background (), nil )
346
+ require .Equal (t , err , ErrNilDocument )
347
+
348
+ _ , err = coll .UpdateOne (context .Background (), nil , bsonx.Doc {{"$set" , bsonx .Document (bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}})}})
349
+ require .Equal (t , err , ErrNilDocument )
350
+
351
+ _ , err = coll .UpdateOne (context .Background (), bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}}, nil )
352
+ require .Equal (t , err , ErrNilDocument )
353
+
354
+ _ , err = coll .UpdateMany (context .Background (), nil , bsonx.Doc {{"$set" , bsonx .Document (bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}})}})
355
+ require .Equal (t , err , ErrNilDocument )
356
+
357
+ _ , err = coll .UpdateMany (context .Background (), bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}}, nil )
358
+ require .Equal (t , err , ErrNilDocument )
359
+
360
+ _ , err = coll .ReplaceOne (context .Background (), bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}}, nil )
361
+ require .Equal (t , err , ErrNilDocument )
362
+
363
+ _ , err = coll .ReplaceOne (context .Background (), nil , bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}})
364
+ require .Equal (t , err , ErrNilDocument )
365
+
366
+ _ , err = coll .Count (context .Background (), nil )
367
+ require .Equal (t , err , ErrNilDocument )
368
+
369
+ _ , err = coll .CountDocuments (context .Background (), nil )
370
+ require .Equal (t , err , ErrNilDocument )
371
+
372
+ _ , err = coll .Distinct (context .Background (), "field" , nil )
373
+ require .Equal (t , err , ErrNilDocument )
374
+
375
+ _ , err = coll .Find (context .Background (), nil )
376
+ require .Equal (t , err , ErrNilDocument )
377
+
378
+ res := coll .FindOne (context .Background (), nil )
379
+ require .Equal (t , res .err , ErrNilDocument )
380
+
381
+ res = coll .FindOneAndDelete (context .Background (), nil )
382
+ require .Equal (t , res .err , ErrNilDocument )
383
+
384
+ res = coll .FindOneAndReplace (context .Background (), bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}}, nil )
385
+ require .Equal (t , res .err , ErrNilDocument )
386
+
387
+ res = coll .FindOneAndReplace (context .Background (), nil , bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}})
388
+ require .Equal (t , res .err , ErrNilDocument )
389
+
390
+ res = coll .FindOneAndUpdate (context .Background (), bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}}, nil )
391
+ require .Equal (t , res .err , ErrNilDocument )
392
+
393
+ res = coll .FindOneAndUpdate (context .Background (), nil , bsonx.Doc {{"_id" , bsonx .Double (3.14159 )}})
394
+ require .Equal (t , res .err , ErrNilDocument )
395
+
396
+ _ , err = coll .BulkWrite (context .Background (), nil )
397
+ require .Equal (t , err , ErrEmptySlice )
398
+
399
+ _ , err = coll .BulkWrite (context .Background (), []WriteModel {})
400
+ require .Equal (t , err , ErrEmptySlice )
401
+
402
+ _ , err = coll .BulkWrite (context .Background (), []WriteModel {nil })
403
+ require .Equal (t , err , ErrNilDocument )
404
+
405
+ _ , err = coll .Aggregate (context .Background (), nil )
406
+ require .Equal (t , err , errors .New ("can only transform slices and arrays into aggregation pipelines, but got invalid" ))
407
+
408
+ _ , err = coll .Watch (context .Background (), nil )
409
+ require .Equal (t , err , errors .New ("can only transform slices and arrays into aggregation pipelines, but got invalid" ))
410
+ }
411
+
322
412
func TestCollection_InsertMany (t * testing.T ) {
323
413
if testing .Short () {
324
414
t .Skip ("skipping integration test in short mode" )
@@ -1215,7 +1305,7 @@ func TestCollection_Count(t *testing.T) {
1215
1305
coll := createTestCollection (t , nil , nil )
1216
1306
initCollection (t , coll )
1217
1307
1218
- count , err := coll .Count (context .Background (), nil )
1308
+ count , err := coll .Count (context .Background (), bsonx. Doc {} )
1219
1309
require .Nil (t , err )
1220
1310
require .Equal (t , count , int64 (5 ))
1221
1311
}
@@ -1243,7 +1333,7 @@ func TestCollection_Count_withOption(t *testing.T) {
1243
1333
coll := createTestCollection (t , nil , nil )
1244
1334
initCollection (t , coll )
1245
1335
1246
- count , err := coll .Count (context .Background (), nil , options .Count ().SetLimit (int64 (3 )))
1336
+ count , err := coll .Count (context .Background (), bsonx. Doc {} , options .Count ().SetLimit (int64 (3 )))
1247
1337
require .Nil (t , err )
1248
1338
require .Equal (t , count , int64 (3 ))
1249
1339
}
@@ -1256,7 +1346,7 @@ func TestCollection_CountDocuments(t *testing.T) {
1256
1346
col1 := createTestCollection (t , nil , nil )
1257
1347
initCollection (t , col1 )
1258
1348
1259
- count , err := col1 .CountDocuments (context .Background (), nil )
1349
+ count , err := col1 .CountDocuments (context .Background (), bsonx. Doc {} )
1260
1350
require .Nil (t , err )
1261
1351
require .Equal (t , count , int64 (5 ))
1262
1352
}
@@ -1285,7 +1375,7 @@ func TestCollection_CountDocuments_withLimitOptions(t *testing.T) {
1285
1375
coll := createTestCollection (t , nil , nil )
1286
1376
initCollection (t , coll )
1287
1377
1288
- count , err := coll .CountDocuments (context .Background (), nil , options .Count ().SetLimit (3 ))
1378
+ count , err := coll .CountDocuments (context .Background (), bsonx. Doc {} , options .Count ().SetLimit (3 ))
1289
1379
require .Nil (t , err )
1290
1380
require .Equal (t , count , int64 (3 ))
1291
1381
}
@@ -1298,7 +1388,7 @@ func TestCollection_CountDocuments_withSkipOptions(t *testing.T) {
1298
1388
coll := createTestCollection (t , nil , nil )
1299
1389
initCollection (t , coll )
1300
1390
1301
- count , err := coll .CountDocuments (context .Background (), nil , options .Count ().SetSkip (3 ))
1391
+ count , err := coll .CountDocuments (context .Background (), bsonx. Doc {} , options .Count ().SetSkip (3 ))
1302
1392
require .Nil (t , err )
1303
1393
require .Equal (t , count , int64 (2 ))
1304
1394
}
@@ -1338,7 +1428,7 @@ func TestCollection_Distinct(t *testing.T) {
1338
1428
coll := createTestCollection (t , nil , nil )
1339
1429
initCollection (t , coll )
1340
1430
1341
- results , err := coll .Distinct (context .Background (), "x" , nil )
1431
+ results , err := coll .Distinct (context .Background (), "x" , bsonx. Doc {} )
1342
1432
require .Nil (t , err )
1343
1433
require .Equal (t , results , []interface {}{int32 (1 ), int32 (2 ), int32 (3 ), int32 (4 ), int32 (5 )})
1344
1434
}
@@ -1366,7 +1456,7 @@ func TestCollection_Distinct_withOption(t *testing.T) {
1366
1456
coll := createTestCollection (t , nil , nil )
1367
1457
initCollection (t , coll )
1368
1458
1369
- results , err := coll .Distinct (context .Background (), "x" , nil ,
1459
+ results , err := coll .Distinct (context .Background (), "x" , bsonx. Doc {} ,
1370
1460
options .Distinct ().SetMaxTime (5000000000 ))
1371
1461
require .Nil (t , err )
1372
1462
require .Equal (t , results , []interface {}{int32 (1 ), int32 (2 ), int32 (3 ), int32 (4 ), int32 (5 )})
@@ -1381,7 +1471,7 @@ func TestCollection_Find_found(t *testing.T) {
1381
1471
initCollection (t , coll )
1382
1472
1383
1473
cursor , err := coll .Find (context .Background (),
1384
- nil ,
1474
+ bsonx. Doc {} ,
1385
1475
options .Find ().SetSort (bsonx.Doc {{"x" , bsonx .Int32 (1 )}}),
1386
1476
)
1387
1477
require .Nil (t , err )
@@ -1466,7 +1556,7 @@ func TestCollection_Find_Error(t *testing.T) {
1466
1556
t .Run ("TestKillCursor" , func (t * testing.T ) {
1467
1557
coll := createTestCollection (t , nil , nil )
1468
1558
initCollection (t , coll )
1469
- c , err := coll .Find (context .Background (), nil , options .Find ().SetBatchSize (2 ))
1559
+ c , err := coll .Find (context .Background (), bsonx. Doc {} , options .Find ().SetBatchSize (2 ))
1470
1560
require .Nil (t , err , "error running find: %s" , err )
1471
1561
1472
1562
// exhaust first batch
0 commit comments