@@ -85,7 +85,7 @@ public void TestClone()
85
85
"maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;readConcernLevel=majority;" +
86
86
"readPreference=secondary;readPreferenceTags=a:1,b:2;readPreferenceTags=c:3,d:4;socketTimeout=129;" +
87
87
"serverSelectionTimeout=20s;ssl=true;sslVerifyCertificate=false;waitqueuesize=130;waitQueueTimeout=131;" +
88
- "w=1;fsync=true;journal=true;w=2;wtimeout=131;gssapiServiceName=other;tlsInsecure=true " ;
88
+ "w=1;fsync=true;journal=true;w=2;wtimeout=131;gssapiServiceName=other" ;
89
89
#pragma warning disable 618
90
90
if ( BsonDefaults . GuidRepresentationMode == GuidRepresentationMode . V2 )
91
91
{
@@ -95,7 +95,6 @@ public void TestClone()
95
95
var builder = new MongoUrlBuilder ( connectionString ) ;
96
96
var url = builder . ToMongoUrl ( ) ;
97
97
var settings = MongoClientSettings . FromUrl ( url ) ;
98
-
99
98
// a few settings can only be made in code
100
99
#pragma warning disable 618
101
100
settings . Credential = MongoCredential . CreateMongoCRCredential ( "database" , "username" , "password" ) . WithMechanismProperty ( "SERVICE_NAME" , "other" ) ;
@@ -104,9 +103,36 @@ public void TestClone()
104
103
settings . SdamLogFilename = "stdout" ;
105
104
106
105
var clone = settings . Clone ( ) ;
106
+
107
107
Assert . Equal ( settings , clone ) ;
108
108
}
109
109
110
+ [ Fact ]
111
+ public void TestCloneTlsDisableCertificateRevocationCheck ( )
112
+ {
113
+ var connectionString = "mongodb://somehost/?tlsDisableCertificateRevocationCheck=true" ;
114
+ var builder = new MongoUrlBuilder ( connectionString ) ;
115
+ var url = builder . ToMongoUrl ( ) ;
116
+ var settings = MongoClientSettings . FromUrl ( url ) ;
117
+
118
+ var clone = settings . Clone ( ) ;
119
+
120
+ clone . Should ( ) . Be ( settings ) ;
121
+ }
122
+
123
+ [ Fact ]
124
+ public void TestCloneTlsInsecure ( )
125
+ {
126
+ var connectionString = "mongodb://somehost/?tlsInsecure=true" ;
127
+ var builder = new MongoUrlBuilder ( connectionString ) ;
128
+ var url = builder . ToMongoUrl ( ) ;
129
+ var settings = MongoClientSettings . FromUrl ( url ) ;
130
+
131
+ var clone = settings . Clone ( ) ;
132
+
133
+ clone . Should ( ) . Be ( settings ) ;
134
+ }
135
+
110
136
[ Fact ]
111
137
public void TestCompressors ( )
112
138
{
@@ -398,12 +424,14 @@ public void TestFreezeInvalid()
398
424
public void TestFromUrl ( )
399
425
{
400
426
// set everything to non default values to test that all settings are converted
427
+ // with the exception of tlsDisableCertificateRevocationCheck because setting that with tlsInsecure is
428
+ // not allowed in a connection string
401
429
var connectionString =
402
430
"mongodb://user1:password1@somehost/?appname=app1;authSource=db;authMechanismProperties=CANONICALIZE_HOST_NAME:true;" +
403
431
"compressors=zlib,snappy;zlibCompressionLevel=9;connect=direct;connectTimeout=123;ipv6=true;heartbeatInterval=1m;heartbeatTimeout=2m;localThreshold=128;" +
404
432
"maxIdleTime=124;maxLifeTime=125;maxPoolSize=126;minPoolSize=127;readConcernLevel=majority;" +
405
433
"readPreference=secondary;readPreferenceTags=a:1,b:2;readPreferenceTags=c:3,d:4;retryReads=false;retryWrites=true;socketTimeout=129;" +
406
- "serverSelectionTimeout=20s;tls=true;tlsInsecure=true ;waitqueuesize=130;waitQueueTimeout=131;" +
434
+ "serverSelectionTimeout=20s;tls=true;sslVerifyCertificate=false ;waitqueuesize=130;waitQueueTimeout=131;" +
407
435
"w=1;fsync=true;journal=true;w=2;wtimeout=131;gssapiServiceName=other" ;
408
436
#pragma warning disable 618
409
437
if ( BsonDefaults . GuidRepresentationMode == GuidRepresentationMode . V2 )
@@ -415,6 +443,7 @@ public void TestFromUrl()
415
443
var url = builder . ToMongoUrl ( ) ;
416
444
417
445
var settings = MongoClientSettings . FromUrl ( url ) ;
446
+
418
447
Assert . Equal ( url . AllowInsecureTls , settings . AllowInsecureTls ) ;
419
448
Assert . Equal ( url . ApplicationName , settings . ApplicationName ) ;
420
449
Assert . Equal ( url . Compressors , settings . Compressors ) ;
@@ -453,21 +482,44 @@ public void TestFromUrl()
453
482
Assert . Equal ( url . ServerSelectionTimeout , settings . ServerSelectionTimeout ) ;
454
483
Assert . Equal ( url . SocketTimeout , settings . SocketTimeout ) ;
455
484
#pragma warning disable 618
456
- settings . SslSettings . Should ( ) . BeNull ( ) ;
485
+ Assert . Equal ( url . TlsDisableCertificateRevocationCheck , ! settings . SslSettings . CheckCertificateRevocation ) ;
457
486
Assert . Equal ( url . UseSsl , settings . UseSsl ) ;
458
487
#pragma warning restore 618
459
488
Assert . Equal ( url . UseTls , settings . UseTls ) ;
460
489
#pragma warning disable 618
461
490
Assert . Equal ( url . VerifySslCertificate , settings . VerifySslCertificate ) ;
462
491
#pragma warning restore 618
463
-
464
492
#pragma warning disable 618
465
493
Assert . Equal ( url . ComputedWaitQueueSize , settings . WaitQueueSize ) ;
466
494
#pragma warning restore 618
467
495
Assert . Equal ( url . WaitQueueTimeout , settings . WaitQueueTimeout ) ;
468
496
Assert . Equal ( url . GetWriteConcern ( true ) , settings . WriteConcern ) ;
469
497
}
470
498
499
+ [ Fact ]
500
+ public void TestFromUrlTlsDisableCertificateRevocationCheck ( )
501
+ {
502
+ var connectionString = "mongodb://the-next-generation/?tlsDisableCertificateRevocationCheck=true" ;
503
+ var builder = new MongoUrlBuilder ( connectionString ) ;
504
+ var url = builder . ToMongoUrl ( ) ;
505
+
506
+ var settings = MongoClientSettings . FromUrl ( url ) ;
507
+
508
+ settings . SslSettings . Should ( ) . Be ( new SslSettings { CheckCertificateRevocation = ! url . TlsDisableCertificateRevocationCheck } ) ;
509
+ }
510
+
511
+ [ Fact ]
512
+ public void TestFromUrlTlsInsecure ( )
513
+ {
514
+ var connectionString = "mongodb://the-next-generation/?tlsInsecure=true" ;
515
+ var builder = new MongoUrlBuilder ( connectionString ) ;
516
+ var url = builder . ToMongoUrl ( ) ;
517
+
518
+ var settings = MongoClientSettings . FromUrl ( url ) ;
519
+
520
+ settings . AllowInsecureTls . Should ( ) . Be ( url . AllowInsecureTls ) ;
521
+ }
522
+
471
523
[ Fact ]
472
524
public void TestFromUrlWithMongoDBX509 ( )
473
525
{
0 commit comments