@@ -34,7 +34,7 @@ public class TcpStreamFactoryTests
3434 {
3535 [ Theory ]
3636 [ ParameterAttributeData ]
37- public void Connect_should_dispose_socket_if_socket_fails ( [ Values ( false , true ) ] bool async )
37+ public async Task Connect_should_dispose_socket_if_socket_fails ( [ Values ( false , true ) ] bool async )
3838 {
3939 RequireServer . Check ( ) ;
4040
@@ -43,20 +43,9 @@ public void Connect_should_dispose_socket_if_socket_fails([Values(false, true)]
4343
4444 using ( var testSocket = new TestSocket ( AddressFamily . InterNetwork , SocketType . Stream , ProtocolType . Tcp ) )
4545 {
46- Exception exception ;
47- if ( async)
48- {
49- exception = Record . Exception (
50- ( ) =>
51- subject
52- . ConnectAsync ( testSocket , endpoint , CancellationToken . None )
53- . GetAwaiter ( )
54- . GetResult ( ) ) ;
55- }
56- else
57- {
58- exception = Record . Exception ( ( ) => subject . Connect ( testSocket , endpoint , CancellationToken . None ) ) ;
59- }
46+ var exception = async ?
47+ await Record . ExceptionAsync ( ( ) => subject . ConnectAsync ( testSocket , endpoint , CancellationToken . None ) ) :
48+ Record . Exception ( ( ) => subject . Connect ( testSocket , endpoint , CancellationToken . None ) ) ;
6049
6150 exception . Should ( ) . NotBeNull ( ) ;
6251 testSocket . DisposeAttempts . Should ( ) . Be ( 1 ) ;
@@ -66,83 +55,64 @@ public void Connect_should_dispose_socket_if_socket_fails([Values(false, true)]
6655 [ Fact ]
6756 public void Constructor_should_throw_an_ArgumentNullException_when_tcpStreamSettings_is_null ( )
6857 {
69- Action act = ( ) => new TcpStreamFactory ( null ) ;
58+ var exception = Record . Exception ( ( ) => new TcpStreamFactory ( null ) ) ;
7059
71- act. ShouldThrow < ArgumentNullException > ( ) ;
60+ exception . Should ( ) . BeOfType < ArgumentNullException > ( ) . Subject
61+ . ParamName . Should ( ) . Be ( "settings" ) ;
7262 }
7363
7464 [ Theory ]
7565 [ ParameterAttributeData ]
76- public void CreateStream_should_throw_a_SocketException_when_the_endpoint_could_not_be_resolved(
77- [ Values ( false , true ) ]
78- bool async)
66+ public async Task CreateStream_should_throw_a_SocketException_when_the_endpoint_could_not_be_resolved ( [ Values ( false , true ) ] bool async )
7967 {
8068 var subject = new TcpStreamFactory ( ) ;
8169
82- Action act ;
83- if ( async )
84- {
85- act = ( ) => subject . CreateStreamAsync ( new DnsEndPoint ( "not-gonna-exist-i-hope" , 27017 ) , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
86- }
87- else
88- {
89- act = ( ) => subject . CreateStream ( new DnsEndPoint ( "not-gonna-exist-i-hope" , 27017 ) , CancellationToken . None ) ;
90- }
70+ var exception = async ?
71+ await Record . ExceptionAsync ( ( ) => subject . CreateStreamAsync ( new DnsEndPoint ( "not-gonna-exist-i-hope" , 27017 ) , CancellationToken . None ) ) :
72+ Record . Exception ( ( ) => subject . CreateStream ( new DnsEndPoint ( "not-gonna-exist-i-hope" , 27017 ) , CancellationToken . None ) ) ;
9173
92- act . ShouldThrow < SocketException > ( ) ;
74+ exception . Should ( ) . BeAssignableTo < SocketException > ( ) ;
9375 }
9476
9577 [ Theory ]
9678 [ ParameterAttributeData ]
97- public void CreateStream_should_throw_when_cancellation_is_requested(
98- [ Values ( false , true ) ]
99- bool async)
79+ public async Task CreateStream_should_throw_when_cancellation_is_requested ( [ Values ( false , true ) ] bool async )
10080 {
10181 var subject = new TcpStreamFactory ( ) ;
10282 var endPoint = new IPEndPoint ( new IPAddress ( 0x01010101 ) , 12345 ) ; // a non-existent host and port
10383 var cancellationTokenSource = new CancellationTokenSource ( TimeSpan . FromMilliseconds ( 20 ) ) ;
10484
105- Action action ;
85+ var exception = async ?
86+ await Record . ExceptionAsync ( ( ) => subject . CreateStreamAsync ( endPoint , cancellationTokenSource . Token ) ) :
87+ Record . Exception ( ( ) => subject . CreateStream ( endPoint , cancellationTokenSource . Token ) ) ;
10688 if ( async)
10789 {
108- action = ( ) => subject . CreateStreamAsync ( endPoint , cancellationTokenSource . Token ) . GetAwaiter ( ) . GetResult ( ) ;
90+ exception . Should ( ) . BeOfType < TaskCanceledException > ( ) ;
10991 }
11092 else
11193 {
112- action = ( ) => subject . CreateStream ( endPoint , cancellationTokenSource . Token ) ;
94+ exception . Should ( ) . BeOfType < OperationCanceledException > ( ) ;
11395 }
114-
115- action . ShouldThrow < OperationCanceledException > ( ) ;
11696 }
11797
11898 [ Theory ]
11999 [ ParameterAttributeData ]
120- public void CreateStream_should_throw_when_connect_timeout_has_expired(
121- [ Values ( false , true ) ]
122- bool async)
100+ public async Task CreateStream_should_throw_when_connect_timeout_has_expired( [ Values ( false , true ) ] bool async)
123101 {
124102 var settings = new TcpStreamSettings ( connectTimeout : TimeSpan . FromMilliseconds ( 20 ) ) ;
125103 var subject = new TcpStreamFactory ( settings ) ;
126104 var endPoint = new IPEndPoint ( new IPAddress ( 0x01010101 ) , 12345 ) ; // a non-existent host and port
127105
128- Action action ;
129- if ( async )
130- {
131- action = ( ) => subject . CreateStreamAsync ( endPoint , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ; ;
132- }
133- else
134- {
135- action = ( ) => subject . CreateStream ( endPoint , CancellationToken . None ) ;
136- }
106+ var exception = async ?
107+ await Record . ExceptionAsync ( ( ) => subject . CreateStreamAsync ( endPoint , CancellationToken . None ) ) :
108+ Record . Exception ( ( ) => subject . CreateStream ( endPoint , CancellationToken . None ) ) ;
137109
138- action . ShouldThrow < TimeoutException > ( ) ;
110+ exception . Should ( ) . BeOfType < TimeoutException > ( ) ;
139111 }
140112
141113 [ Theory ]
142114 [ ParameterAttributeData ]
143- public void CreateStream_should_call_the_socketConfigurator(
144- [ Values ( false , true ) ]
145- bool async)
115+ public async Task CreateStream_should_call_the_socketConfigurator( [ Values ( false , true ) ] bool async)
146116 {
147117 RequireServer . Check ( ) ;
148118 var socketConfiguratorWasCalled = false ;
@@ -153,7 +123,7 @@ public void CreateStream_should_call_the_socketConfigurator(
153123
154124 if ( async)
155125 {
156- subject . CreateStreamAsync ( endPoint , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
126+ await subject . CreateStreamAsync ( endPoint , CancellationToken . None ) ;
157127 }
158128 else
159129 {
@@ -165,9 +135,7 @@ public void CreateStream_should_call_the_socketConfigurator(
165135
166136 [ Theory ]
167137 [ ParameterAttributeData ]
168- public void CreateStream_should_connect_to_a_running_server_and_return_a_non_null_stream (
169- [ Values ( false , true ) ]
170- bool async)
138+ public async Task CreateStream_should_connect_to_a_running_server_and_return_a_non_null_stream( [ Values ( false , true ) ] bool async)
171139 {
172140 RequireServer . Check ( ) ;
173141 var subject = new TcpStreamFactory ( ) ;
@@ -176,7 +144,7 @@ public void CreateStream_should_connect_to_a_running_server_and_return_a_non_nul
176144 Stream stream ;
177145 if ( async )
178146 {
179- stream = subject . CreateStreamAsync ( endPoint , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
147+ stream = await subject . CreateStreamAsync ( endPoint , CancellationToken . None ) ;
180148 }
181149 else
182150 {
@@ -188,9 +156,7 @@ public void CreateStream_should_connect_to_a_running_server_and_return_a_non_nul
188156
189157 [ Theory ]
190158 [ ParameterAttributeData ]
191- public void SocketConfigurator_can_be_used_to_set_keepAlive(
192- [ Values ( false , true ) ]
193- bool async)
159+ public async Task SocketConfigurator_can_be_used_to_set_keepAlive( [ Values ( false , true ) ] bool async)
194160 {
195161 RequireServer . Check ( ) ;
196162 Action< Socket > socketConfigurator = s => s . SetSocketOption ( SocketOptionLevel . Socket , SocketOptionName . KeepAlive , true ) ;
@@ -201,7 +167,7 @@ public void SocketConfigurator_can_be_used_to_set_keepAlive(
201167 Stream stream ;
202168 if ( async )
203169 {
204- stream = subject . CreateStreamAsync ( endPoint , CancellationToken . None ) . GetAwaiter ( ) . GetResult ( ) ;
170+ stream = await subject . CreateStreamAsync ( endPoint , CancellationToken . None ) ;
205171 }
206172 else
207173 {
0 commit comments