14
14
*/
15
15
16
16
using System ;
17
+ using System . Threading . Tasks ;
17
18
using MongoDB . Bson ;
18
19
using MongoDB . Driver . Core . TestHelpers . Logging ;
19
20
using Xunit ;
@@ -24,28 +25,42 @@ namespace MongoDB.Driver.Tests.Specifications.socks5_support
24
25
[ Trait ( "Category" , "Integration" ) ]
25
26
public class Socks5SupportProseTests ( ITestOutputHelper testOutputHelper ) : LoggableTestClass ( testOutputHelper )
26
27
{
28
+ //TODO Need be sure that the connection string tests are run.
27
29
28
- // [Theory]
29
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&directConnection=true", false)]
30
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&directConnection=true", true)]
31
- // [InlineData("mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1080", false)]
32
- // [InlineData("mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081", true)]
33
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&proxyUsername=nonexistentuser&proxyPassword=badauth&directConnection=true", false)]
34
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&proxyUsername=nonexistentuser&proxyPassword=badauth&directConnection=true", true)]
35
- // [InlineData("mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081&proxyUsername=nonexistentuser&proxyPassword=badauth", true)]
36
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&proxyUsername=username&proxyPassword=p4ssw0rd&directConnection=true", true)]
37
- // [InlineData("mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&directConnection=true", true)]
38
- // [InlineData("mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1080&proxyUsername=username&proxyPassword=p4ssw0rd", true)]
39
- // [InlineData("mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081", true)]
40
- public void TestConnectionStrings ( string connectionString , bool expectedResult )
30
+
31
+ [ Theory ]
32
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&directConnection=true" , false ) ]
33
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&directConnection=true" , true ) ]
34
+ [ InlineData ( "mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1080" , false ) ]
35
+ [ InlineData ( "mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081" , true ) ]
36
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&proxyUsername=nonexistentuser&proxyPassword=badauth&directConnection=true" , false ) ]
37
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&proxyUsername=nonexistentuser&proxyPassword=badauth&directConnection=true" , true ) ]
38
+ [ InlineData ( "mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081&proxyUsername=nonexistentuser&proxyPassword=badauth" , true ) ]
39
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1080&proxyUsername=username&proxyPassword=p4ssw0rd&directConnection=true" , true ) ]
40
+ [ InlineData ( "mongodb://<mappedhost>/?proxyHost=localhost&proxyPort=1081&directConnection=true" , true ) ]
41
+ [ InlineData ( "mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1080&proxyUsername=username&proxyPassword=p4ssw0rd" , true ) ]
42
+ [ InlineData ( "mongodb://<replicaset>/?proxyHost=localhost&proxyPort=1081" , true ) ]
43
+ public async Task TestConnectionStrings ( string connectionString , bool expectedResult )
41
44
{
42
- connectionString = connectionString . Replace ( "<mappedhost>" , "localhost:27017" ) ;
43
- var client = new MongoClient ( connectionString ) ;
44
- var database = client . GetDatabase ( "admin" ) ;
45
+ connectionString = connectionString . Replace ( "<mappedhost>" , "localhost:27017" ) . Replace ( "<replicaset>" , "localhost:27017" ) ;
46
+ var mongoClientSettings = MongoClientSettings . FromConnectionString ( connectionString ) ;
47
+ mongoClientSettings . ServerSelectionTimeout = TimeSpan . FromSeconds ( 1.5 ) ;
48
+ var client = new MongoClient ( mongoClientSettings ) ;
45
49
50
+ var database = client . GetDatabase ( "admin" ) ;
46
51
var command = new BsonDocument ( "hello" , 1 ) ;
47
- var result = database . RunCommand < BsonDocument > ( command ) ;
48
- Assert . NotEmpty ( result ) ;
52
+
53
+ if ( expectedResult )
54
+ {
55
+ var result = await database . RunCommandAsync < BsonDocument > ( command ) ;
56
+ Assert . NotEmpty ( result ) ;
57
+ }
58
+ else
59
+ {
60
+ var exception = Record . Exception ( ( ) => database . RunCommand < BsonDocument > ( command ) ) ;
61
+ Assert . IsType < TimeoutException > ( exception ) ;
62
+ }
63
+
49
64
}
50
65
51
66
}
0 commit comments