@@ -74,9 +74,8 @@ public void Connection_timeout_should_throw_expected_exception([Values(false, tr
74
74
mongoConnectionException . ContainsSocketTimeoutException . Should ( ) . BeFalse ( ) ;
75
75
#pragma warning restore CS0618 // Type or member is obsolete
76
76
mongoConnectionException . ContainsTimeoutException . Should ( ) . BeTrue ( ) ;
77
- mongoConnectionException
78
- . InnerException . Should ( ) . BeOfType < TimeoutException > ( ) . Subject
79
- . InnerException . Should ( ) . BeNull ( ) ;
77
+ var baseException = GetBaseException ( mongoConnectionException ) ;
78
+ baseException . Should ( ) . BeOfType < TimeoutException > ( ) . Which . InnerException . Should ( ) . BeNull ( ) ;
80
79
}
81
80
else
82
81
{
@@ -87,13 +86,23 @@ public void Connection_timeout_should_throw_expected_exception([Values(false, tr
87
86
mongoConnectionException . ContainsSocketTimeoutException . Should ( ) . BeTrue ( ) ;
88
87
#pragma warning restore CS0618 // Type or member is obsolete
89
88
mongoConnectionException . ContainsTimeoutException . Should ( ) . BeTrue ( ) ;
90
- var socketException = mongoConnectionException
91
- . InnerException . Should ( ) . BeOfType < IOException > ( ) . Subject
92
- . InnerException . Should ( ) . BeOfType < SocketException > ( ) . Subject ;
89
+ var baseException = GetBaseException ( mongoConnectionException ) ;
90
+ var socketException = baseException . Should ( ) . BeOfType < IOException > ( )
91
+ . Which . InnerException . Should ( ) . BeOfType < SocketException > ( ) . Subject ;
93
92
socketException . SocketErrorCode . Should ( ) . Be ( SocketError . TimedOut ) ;
94
93
socketException . InnerException . Should ( ) . BeNull ( ) ;
95
94
}
96
95
}
96
+
97
+ Exception GetBaseException ( MongoConnectionException mongoConnectionException )
98
+ {
99
+ while ( mongoConnectionException . InnerException is MongoConnectionException innerException )
100
+ {
101
+ // https://jira.mongodb.org/browse/CSHARP-3895
102
+ mongoConnectionException = innerException ;
103
+ }
104
+ return mongoConnectionException . InnerException ;
105
+ }
97
106
}
98
107
}
99
108
}
0 commit comments