@@ -424,11 +424,10 @@ class HTTPClientInternalTests: XCTestCase {
424
424
let randoEL = group. next ( )
425
425
426
426
let httpClient = HTTPClient ( eventLoopGroupProvider: . shared( group) )
427
- let promise : EventLoopPromise < Channel > = httpClient. eventLoopGroup. next ( ) . makePromise ( )
428
- let httpBin = HTTPBin ( channelPromise: promise)
427
+ let server = NIOHTTP1TestServer ( group: MultiThreadedEventLoopGroup ( numberOfThreads: 1 ) )
429
428
defer {
429
+ XCTAssertNoThrow ( try server. stop ( ) )
430
430
XCTAssertNoThrow ( try httpClient. syncShutdown ( requiresCleanClose: true ) )
431
- XCTAssertNoThrow ( try httpBin. shutdown ( ) )
432
431
}
433
432
434
433
let body : HTTPClient . Body = . stream( length: 8 ) { writer in
@@ -439,21 +438,26 @@ class HTTPClientInternalTests: XCTestCase {
439
438
}
440
439
}
441
440
442
- let request = try Request ( url: " http://127.0.0.1: \( httpBin . port ) /custom " ,
441
+ let request = try Request ( url: " http://127.0.0.1: \( server . serverPort ) /custom " ,
443
442
body: body)
444
443
let delegate = Delegate ( expectedEventLoop: delegateEL, randomOtherEventLoop: randoEL)
445
444
let future = httpClient. execute ( request: request,
446
445
delegate: delegate,
447
446
eventLoop: . init( . testOnly_exact( channelOn: channelEL,
448
447
delegateOn: delegateEL) ) ) . futureResult
449
448
450
- let channel = try promise. futureResult. wait ( )
449
+ XCTAssertNoThrow ( try server. readInbound ( ) ) // .head
450
+ XCTAssertNoThrow ( try server. readInbound ( ) ) // .body
451
+ XCTAssertNoThrow ( try server. readInbound ( ) ) // .end
451
452
452
453
// Send 3 parts, but only one should be received until the future is complete
453
- let buffer = channel. allocator. buffer ( string: " 1234 " )
454
- try channel. writeAndFlush ( HTTPServerResponsePart . body ( . byteBuffer( buffer) ) ) . wait ( )
454
+ XCTAssertNoThrow ( try server. writeOutbound ( . head( . init( version: . init( major: 1 , minor: 1 ) ,
455
+ status: . ok,
456
+ headers: HTTPHeaders ( [ ( " Transfer-Encoding " , " chunked " ) ] ) ) ) ) )
457
+ let buffer = ByteBuffer ( string: " 1234 " )
458
+ XCTAssertNoThrow ( try server. writeOutbound ( . body( . byteBuffer( buffer) ) ) )
459
+ XCTAssertNoThrow ( try server. writeOutbound ( . end( nil ) ) )
455
460
456
- try channel. writeAndFlush ( HTTPServerResponsePart . end ( nil ) ) . wait ( )
457
461
let ( receivedMessages, sentMessages) = try future. wait ( )
458
462
XCTAssertEqual ( 2 , receivedMessages. count)
459
463
XCTAssertEqual ( 4 , sentMessages. count)
@@ -488,7 +492,7 @@ class HTTPClientInternalTests: XCTestCase {
488
492
489
493
switch receivedMessages. dropFirst ( 0 ) . first {
490
494
case . some( . head( let head) ) :
491
- XCTAssertEqual ( [ " transfer-encoding " : " chunked " ] , head . headers )
495
+ XCTAssertEqual ( head . headers [ " transfer-encoding " ] . first , " chunked " )
492
496
default :
493
497
XCTFail ( " wrong message " )
494
498
}
0 commit comments