@@ -52,19 +52,25 @@ protected override EndPoint GetLocalEndPointToBind()
5252 : throw new NotSupportedException ( ) ,
5353 port : 0
5454 ) ;
55+
56+ public IPEndPoint LocalEndPointToConnect
57+ => new (
58+ address : Socket . OSSupportsIPv6 ? IPAddress . IPv6Any : IPAddress . Any ,
59+ port : ( ( IPEndPoint ) LocalEndPoint ) . Port
60+ ) ;
5561 }
5662
57- private static NodeBase CreateNode ( )
63+ private static TestLocalNode CreateNode ( )
5864 => CreateNode ( accessRule : null , plugins : Array . Empty < IPlugin > ( ) ) ;
5965
60- private static NodeBase CreateNode ( IAccessRule ? accessRule )
66+ private static TestLocalNode CreateNode ( IAccessRule ? accessRule )
6167 => CreateNode ( accessRule : accessRule , plugins : Array . Empty < IPlugin > ( ) ) ;
6268
63- private static NodeBase CreateNode ( IReadOnlyList < IPlugin > plugins )
69+ private static TestLocalNode CreateNode ( IReadOnlyList < IPlugin > plugins )
6470 => CreateNode ( accessRule : null , plugins : plugins ) ;
6571
66- private static NodeBase CreateNode ( IAccessRule ? accessRule , IReadOnlyList < IPlugin > plugins )
67- => new TestLocalNode ( accessRule , plugins ) ;
72+ private static TestLocalNode CreateNode ( IAccessRule ? accessRule , IReadOnlyList < IPlugin > plugins )
73+ => new ( accessRule , plugins ) ;
6874
6975 private static TcpClient CreateClient (
7076 IPEndPoint endPoint ,
@@ -122,7 +128,7 @@ Func<NodeBase, TcpClient, StreamWriter, StreamReader, CancellationToken, Task> a
122128 cts . Token
123129 ) ;
124130
125- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer , out var reader ) ;
131+ using var client = CreateClient ( node . LocalEndPointToConnect , out var writer , out var reader ) ;
126132
127133 try {
128134 reader . ReadLine ( ) ; // banner
@@ -157,7 +163,7 @@ public async Task AcceptSingleSessionAsync()
157163
158164 var taskAccept = Task . Run ( async ( ) => await node . AcceptSingleSessionAsync ( ) ) ;
159165
160- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer , out var reader ) ;
166+ using var client = CreateClient ( node . LocalEndPointToConnect , out var writer , out var reader ) ;
161167
162168 var banner = reader . ReadLine ( ) ;
163169
@@ -202,7 +208,7 @@ public async Task AcceptSingleSessionAsync_ClientDisconnected_BeforeSendingBanne
202208
203209 var taskAccept = Task . Run ( async ( ) => await node . AcceptSingleSessionAsync ( ) ) ;
204210
205- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out _ , out _ ) ;
211+ using var client = CreateClient ( node . LocalEndPointToConnect , out _ , out _ ) ;
206212
207213 client . Close ( ) ;
208214
@@ -218,7 +224,7 @@ public async Task AcceptSingleSessionAsync_ClientDisconnected_WhileAwaitingComma
218224
219225 var taskAccept = Task . Run ( async ( ) => await node . AcceptSingleSessionAsync ( ) ) ;
220226
221- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out _ , out var reader ) ;
227+ using var client = CreateClient ( node . LocalEndPointToConnect , out _ , out var reader ) ;
222228
223229 reader . ReadLine ( ) ; // read banner
224230
@@ -335,7 +341,7 @@ public async Task AcceptSingleSessionAsync_INodeSessionCallback(bool setSessionC
335341 Assert . That ( plugin . StartedSessionIds . Count , Is . EqualTo ( 0 ) , nameof ( plugin . StartedSessionIds ) ) ;
336342 Assert . That ( plugin . ClosedSessionIds . Count , Is . EqualTo ( 0 ) , nameof ( plugin . ClosedSessionIds ) ) ;
337343
338- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer , out var reader ) ;
344+ using var client = CreateClient ( node . LocalEndPointToConnect , out var writer , out var reader ) ;
339345
340346 var banner = reader . ReadLine ( ) ;
341347
@@ -383,15 +389,15 @@ public async Task AcceptAsync(bool throwIfCancellationRequested)
383389
384390 var taskAccept = Task . Run ( async ( ) => await node . AcceptAsync ( throwIfCancellationRequested , cts . Token ) ) ;
385391
386- using var client0 = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer0 , out var reader0 ) ;
392+ using var client0 = CreateClient ( node . LocalEndPointToConnect , out var writer0 , out var reader0 ) ;
387393
388394 reader0 . ReadLine ( ) ;
389395 writer0 . WriteLine ( "." ) ;
390396 writer0 . Close ( ) ;
391397
392398 Assert . That ( taskAccept . Wait ( TimeSpan . FromSeconds ( 1.0 ) ) , Is . False , "task must not be completed" ) ;
393399
394- using var client1 = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer1 , out var reader1 ) ;
400+ using var client1 = CreateClient ( node . LocalEndPointToConnect , out var writer1 , out var reader1 ) ;
395401
396402 reader1 . ReadLine ( ) ;
397403 writer1 . WriteLine ( "." ) ;
@@ -417,7 +423,7 @@ public async Task ProcessCommandAsync_EndOfLine(string eol)
417423
418424 var taskAccept = Task . Run ( async ( ) => await node . AcceptSingleSessionAsync ( ) ) ;
419425
420- using var client = CreateClient ( ( IPEndPoint ) node . LocalEndPoint , out var writer , out _ ) ;
426+ using var client = CreateClient ( node . LocalEndPointToConnect , out var writer , out _ ) ;
421427
422428 writer . Write ( "." ) ;
423429 writer . Write ( eol ) ;
0 commit comments