@@ -110,48 +110,44 @@ public async Task ConnectAsync_Throws_If_Already_Connected()
110110 using var mockHttpHandler = new MockHttpHandler ( ) ;
111111 using var httpClient = new HttpClient ( mockHttpHandler ) ;
112112 await using var transport = new SseClientTransport ( _transportOptions , _serverConfig , httpClient , NullLoggerFactory . Instance ) ;
113- using var mreConnected = new ManualResetEventSlim ( false ) ;
114- using var mreDone = new ManualResetEventSlim ( false ) ;
113+ var tcsConnected = new TaskCompletionSource ( ) ;
114+ var tcsDone = new TaskCompletionSource ( TaskCreationOptions . RunContinuationsAsynchronously ) ;
115115 var callIndex = 0 ;
116116
117- mockHttpHandler . RequestHandler = ( request ) =>
117+ mockHttpHandler . RequestHandler = async ( request ) =>
118118 {
119119 switch ( callIndex ++ )
120120 {
121121 case 0 :
122- return Task . FromResult ( new HttpResponseMessage
122+ return new HttpResponseMessage
123123 {
124124 StatusCode = HttpStatusCode . OK ,
125125 Content = new StringContent ( "event: endpoint\r \n data: http://localhost\r \n \r \n " )
126- } ) ;
126+ } ;
127127 case 1 :
128- mreConnected . Set ( ) ;
129- mreDone . Wait ( ) ;
130- return Task . FromResult ( new HttpResponseMessage
128+ tcsConnected . SetResult ( ) ;
129+ await tcsDone . Task ;
130+ return new HttpResponseMessage
131131 {
132132 StatusCode = HttpStatusCode . OK ,
133133 Content = new StringContent ( "" )
134- } ) ;
134+ } ;
135135 default :
136- return Task . FromResult ( new HttpResponseMessage
136+ return new HttpResponseMessage
137137 {
138138 StatusCode = HttpStatusCode . OK ,
139139 Content = new StringContent ( "" )
140- } ) ;
140+ } ;
141141 }
142142 } ;
143143
144- var task = Task . Run ( async ( ) =>
145- {
146- await transport . ConnectAsync ( TestContext . Current . CancellationToken ) ;
147- } , TestContext . Current . CancellationToken ) ;
148-
149- mreConnected . Wait ( TestContext . Current . CancellationToken ) ;
144+ var task = transport . ConnectAsync ( TestContext . Current . CancellationToken ) ;
145+ await tcsConnected . Task ;
150146 Assert . True ( transport . IsConnected ) ;
151147 var action = async ( ) => await transport . ConnectAsync ( ) ;
152148 var exception = await Assert . ThrowsAsync < McpTransportException > ( action ) ;
153149 Assert . Equal ( "Transport is already connected" , exception . Message ) ;
154- mreDone . Set ( ) ;
150+ tcsDone . SetResult ( ) ;
155151 await transport . CloseAsync ( ) ;
156152 await task ;
157153 }
0 commit comments