@@ -56,6 +56,33 @@ class CodableLambdaTest: XCTestCase {
56
56
XCTAssertNil ( outputBuffer)
57
57
}
58
58
59
+ func testCodableEventLoopFutureHandler( ) {
60
+ let request = Request ( requestId: UUID ( ) . uuidString)
61
+ var inputBuffer : ByteBuffer ?
62
+ var outputBuffer : ByteBuffer ?
63
+ var response : Response ?
64
+
65
+ struct Handler : EventLoopLambdaHandler {
66
+ typealias In = Request
67
+ typealias Out = Response
68
+
69
+ let expected : Request
70
+
71
+ func handle( context: Lambda . Context , event: Request ) -> EventLoopFuture < Response > {
72
+ XCTAssertEqual ( event, self . expected)
73
+ return context. eventLoop. makeSucceededFuture ( Response ( requestId: event. requestId) )
74
+ }
75
+ }
76
+
77
+ let handler = Handler ( expected: request)
78
+
79
+ XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
80
+ XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
81
+ XCTAssertNoThrow ( response = try JSONDecoder ( ) . decode ( Response . self, from: XCTUnwrap ( outputBuffer) ) )
82
+ XCTAssertEqual ( response? . requestId, request. requestId)
83
+ }
84
+
85
+ #if swift(>=5.5)
59
86
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
60
87
func testCodableVoidHandler( ) {
61
88
struct Handler : LambdaHandler {
@@ -85,32 +112,6 @@ class CodableLambdaTest: XCTestCase {
85
112
}
86
113
}
87
114
88
- func testCodableEventLoopFutureHandler( ) {
89
- let request = Request ( requestId: UUID ( ) . uuidString)
90
- var inputBuffer : ByteBuffer ?
91
- var outputBuffer : ByteBuffer ?
92
- var response : Response ?
93
-
94
- struct Handler : EventLoopLambdaHandler {
95
- typealias In = Request
96
- typealias Out = Response
97
-
98
- let expected : Request
99
-
100
- func handle( context: Lambda . Context , event: Request ) -> EventLoopFuture < Response > {
101
- XCTAssertEqual ( event, self . expected)
102
- return context. eventLoop. makeSucceededFuture ( Response ( requestId: event. requestId) )
103
- }
104
- }
105
-
106
- let handler = Handler ( expected: request)
107
-
108
- XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
109
- XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
110
- XCTAssertNoThrow ( response = try JSONDecoder ( ) . decode ( Response . self, from: XCTUnwrap ( outputBuffer) ) )
111
- XCTAssertEqual ( response? . requestId, request. requestId)
112
- }
113
-
114
115
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
115
116
func testCodableHandler( ) {
116
117
struct Handler : LambdaHandler {
@@ -142,6 +143,7 @@ class CodableLambdaTest: XCTestCase {
142
143
XCTAssertEqual ( response? . requestId, request. requestId)
143
144
}
144
145
}
146
+ #endif
145
147
146
148
// convencience method
147
149
func newContext( ) -> Lambda . Context {
@@ -177,6 +179,9 @@ private struct Response: Codable, Equatable {
177
179
}
178
180
}
179
181
182
+ #if swift(>=5.5)
183
+ // NOTE: workaround until we have async test support on linux
184
+ // https://github.com/apple/swift-corelibs-xctest/pull/326
180
185
extension XCTestCase {
181
186
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
182
187
public func XCTAsyncTest(
@@ -198,3 +203,4 @@ extension XCTestCase {
198
203
self . wait ( for: [ expectation] , timeout: timeout)
199
204
}
200
205
}
206
+ #endif
0 commit comments