@@ -66,34 +66,21 @@ public async Task RunTlsClientHelloCallbackTest_DeterministicallyReads()
6666 var transport = new DuplexPipe ( reader , writer ) ;
6767 var transportConnection = new DefaultConnectionContext ( "test" , transport , transport ) ;
6868
69- var nextMiddlewareInvoked = false ;
7069 var tlsClientHelloCallbackInvoked = false ;
71-
72- var middleware = new TlsListenerMiddleware (
73- next : ctx =>
74- {
75- nextMiddlewareInvoked = true ;
76- var readResult = ctx . Transport . Input . ReadAsync ( ) ;
77- Assert . Equal ( 5 , readResult . Result . Buffer . Length ) ;
78-
79- return Task . CompletedTask ;
80- } ,
81- tlsClientHelloBytesCallback : ( ctx , data ) =>
82- {
83- tlsClientHelloCallbackInvoked = true ;
84- }
85- ) ;
70+ var middleware = new TlsListener ( ( ctx , data ) => { tlsClientHelloCallbackInvoked = true ; } ) ;
8671
8772 await writer . WriteAsync ( new byte [ 1 ] { 0x16 } ) ;
88- var middlewareTask = middleware . OnTlsClientHelloAsync ( transportConnection ) ;
73+ var middlewareTask = middleware . OnTlsClientHelloAsync ( transportConnection , CancellationToken . None ) ;
8974 await writer . WriteAsync ( new byte [ 2 ] { 0x03 , 0x01 } ) ;
9075 await writer . WriteAsync ( new byte [ 2 ] { 0x00 , 0x20 } ) ;
9176 await writer . CompleteAsync ( ) ;
9277
9378 await middlewareTask ;
94- Assert . True ( nextMiddlewareInvoked ) ;
9579 Assert . False ( tlsClientHelloCallbackInvoked ) ;
9680
81+ var readResult = await reader . ReadAsync ( ) ;
82+ Assert . Equal ( 5 , readResult . Buffer . Length ) ;
83+
9784 // ensuring that we have read limited number of times
9885 Assert . True ( reader . ReadAsyncCounter is >= 2 && reader . ReadAsyncCounter is <= 4 ,
9986 $ "Expected ReadAsync() to happen about 2-4 times. Actually happened { reader . ReadAsyncCounter } times.") ;
@@ -110,23 +97,11 @@ private async Task RunTlsClientHelloCallbackTest_WithMultipleSegments(
11097 var transport = new DuplexPipe ( pipe . Reader , writer ) ;
11198 var transportConnection = new DefaultConnectionContext ( "test" , transport , transport ) ;
11299
113- var nextMiddlewareInvokedActual = false ;
114100 var tlsClientHelloCallbackActual = false ;
115101
116102 var fullLength = packets . Sum ( p => p . Length ) ;
117103
118- var middleware = new TlsListenerMiddleware (
119- next : ctx =>
120- {
121- nextMiddlewareInvokedActual = true ;
122- if ( tlsClientHelloCallbackActual )
123- {
124- var readResult = ctx . Transport . Input . ReadAsync ( ) ;
125- Assert . Equal ( fullLength , readResult . Result . Buffer . Length ) ;
126- }
127-
128- return Task . CompletedTask ;
129- } ,
104+ var middleware = new TlsListener (
130105 tlsClientHelloBytesCallback : ( ctx , data ) =>
131106 {
132107 tlsClientHelloCallbackActual = true ;
@@ -139,9 +114,8 @@ private async Task RunTlsClientHelloCallbackTest_WithMultipleSegments(
139114
140115 // write first packet
141116 await writer . WriteAsync ( packets [ 0 ] ) ;
142- var middlewareTask = middleware . OnTlsClientHelloAsync ( transportConnection ) ;
117+ var middlewareTask = middleware . OnTlsClientHelloAsync ( transportConnection , CancellationToken . None ) ;
143118
144-
145119 /* It is a race condition (middleware's loop and writes here).
146120 * We don't know specifically how many packets will be read by middleware's loop
147121 * (possibly there are even 2 packets - the first and all others combined).
@@ -156,8 +130,13 @@ private async Task RunTlsClientHelloCallbackTest_WithMultipleSegments(
156130 await writer . CompleteAsync ( ) ;
157131 await middlewareTask ;
158132
159- Assert . True ( nextMiddlewareInvokedActual ) ;
160133 Assert . Equal ( tlsClientHelloCallbackExpected , tlsClientHelloCallbackActual ) ;
134+
135+ if ( tlsClientHelloCallbackActual )
136+ {
137+ var readResult = await pipe . Reader . ReadAsync ( ) ;
138+ Assert . Equal ( fullLength , readResult . Buffer . Length ) ;
139+ }
161140 }
162141
163142 private async Task RunTlsClientHelloCallbackTest (
@@ -171,18 +150,9 @@ private async Task RunTlsClientHelloCallbackTest(
171150 var transport = new DuplexPipe ( pipe . Reader , writer ) ;
172151 var transportConnection = new DefaultConnectionContext ( "test" , transport , transport ) ;
173152
174- var nextMiddlewareInvokedActual = false ;
175153 var tlsClientHelloCallbackActual = false ;
176154
177- var middleware = new TlsListenerMiddleware (
178- next : ctx =>
179- {
180- nextMiddlewareInvokedActual = true ;
181- var readResult = ctx . Transport . Input . ReadAsync ( ) ;
182- Assert . Equal ( packetBytes . Length , readResult . Result . Buffer . Length ) ;
183-
184- return Task . CompletedTask ;
185- } ,
155+ var middleware = new TlsListener (
186156 tlsClientHelloBytesCallback : ( ctx , data ) =>
187157 {
188158 tlsClientHelloCallbackActual = true ;
@@ -197,10 +167,12 @@ private async Task RunTlsClientHelloCallbackTest(
197167 await writer . CompleteAsync ( ) ;
198168
199169 // call middleware and expect a callback
200- await middleware . OnTlsClientHelloAsync ( transportConnection ) ;
170+ await middleware . OnTlsClientHelloAsync ( transportConnection , CancellationToken . None ) ;
201171
202- Assert . True ( nextMiddlewareInvokedActual ) ;
203172 Assert . Equal ( tlsClientHelloCallbackExpected , tlsClientHelloCallbackActual ) ;
173+
174+ var readResult = await pipe . Reader . ReadAsync ( ) ;
175+ Assert . Equal ( packetBytes . Length , readResult . Buffer . Length ) ;
204176 }
205177
206178 public static IEnumerable < object [ ] > ValidClientHelloData ( )
0 commit comments