@@ -40,45 +40,45 @@ class CodableLambdaTest: XCTestCase {
40
40
struct Handler : EventLoopLambdaHandler {
41
41
typealias In = Request
42
42
typealias Out = Void
43
-
43
+
44
44
let expected : Request
45
45
46
46
func handle( context: Lambda . Context , event: Request ) -> EventLoopFuture < Void > {
47
47
XCTAssertEqual ( event, self . expected)
48
48
return context. eventLoop. makeSucceededVoidFuture ( )
49
49
}
50
50
}
51
-
51
+
52
52
let handler = Handler ( expected: request)
53
53
54
54
XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
55
55
XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
56
56
XCTAssertNil ( outputBuffer)
57
57
}
58
-
58
+
59
59
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
60
60
func testCodableVoidHandler( ) {
61
61
struct Handler : LambdaHandler {
62
62
typealias In = Request
63
63
typealias Out = Void
64
-
64
+
65
65
var expected : Request ?
66
-
66
+
67
67
init ( context: Lambda . InitializationContext ) async throws { }
68
-
69
- func handle( event: Request , context: Lambda . Context ) async throws -> Void {
68
+
69
+ func handle( event: Request , context: Lambda . Context ) async throws {
70
70
XCTAssertEqual ( event, self . expected)
71
71
}
72
72
}
73
-
73
+
74
74
XCTAsyncTest {
75
75
let request = Request ( requestId: UUID ( ) . uuidString)
76
76
var inputBuffer : ByteBuffer ?
77
77
var outputBuffer : ByteBuffer ?
78
-
78
+
79
79
var handler = try await Handler ( context: self . newInitContext ( ) )
80
80
handler. expected = request
81
-
81
+
82
82
XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
83
83
XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
84
84
XCTAssertNil ( outputBuffer)
@@ -90,52 +90,52 @@ class CodableLambdaTest: XCTestCase {
90
90
var inputBuffer : ByteBuffer ?
91
91
var outputBuffer : ByteBuffer ?
92
92
var response : Response ?
93
-
93
+
94
94
struct Handler : EventLoopLambdaHandler {
95
95
typealias In = Request
96
96
typealias Out = Response
97
-
97
+
98
98
let expected : Request
99
99
100
100
func handle( context: Lambda . Context , event: Request ) -> EventLoopFuture < Response > {
101
101
XCTAssertEqual ( event, self . expected)
102
102
return context. eventLoop. makeSucceededFuture ( Response ( requestId: event. requestId) )
103
103
}
104
104
}
105
-
105
+
106
106
let handler = Handler ( expected: request)
107
107
108
108
XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
109
109
XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
110
110
XCTAssertNoThrow ( response = try JSONDecoder ( ) . decode ( Response . self, from: XCTUnwrap ( outputBuffer) ) )
111
111
XCTAssertEqual ( response? . requestId, request. requestId)
112
112
}
113
-
113
+
114
114
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
115
115
func testCodableHandler( ) {
116
116
struct Handler : LambdaHandler {
117
117
typealias In = Request
118
118
typealias Out = Response
119
-
119
+
120
120
var expected : Request ?
121
-
121
+
122
122
init ( context: Lambda . InitializationContext ) async throws { }
123
-
123
+
124
124
func handle( event: Request , context: Lambda . Context ) async throws -> Response {
125
125
XCTAssertEqual ( event, self . expected)
126
126
return Response ( requestId: event. requestId)
127
127
}
128
128
}
129
-
129
+
130
130
XCTAsyncTest {
131
131
let request = Request ( requestId: UUID ( ) . uuidString)
132
132
var response : Response ?
133
133
var inputBuffer : ByteBuffer ?
134
134
var outputBuffer : ByteBuffer ?
135
-
135
+
136
136
var handler = try await Handler ( context: self . newInitContext ( ) )
137
137
handler. expected = request
138
-
138
+
139
139
XCTAssertNoThrow ( inputBuffer = try JSONEncoder ( ) . encode ( request, using: self . allocator) )
140
140
XCTAssertNoThrow ( outputBuffer = try handler. handle ( context: self . newContext ( ) , event: XCTUnwrap ( inputBuffer) ) . wait ( ) )
141
141
XCTAssertNoThrow ( response = try JSONDecoder ( ) . decode ( Response . self, from: XCTUnwrap ( outputBuffer) ) )
@@ -155,7 +155,7 @@ class CodableLambdaTest: XCTestCase {
155
155
eventLoop: self . eventLoopGroup. next ( ) ,
156
156
allocator: ByteBufferAllocator ( ) )
157
157
}
158
-
158
+
159
159
func newInitContext( ) -> Lambda . InitializationContext {
160
160
Lambda . InitializationContext ( logger: Logger ( label: " test " ) ,
161
161
eventLoop: self . eventLoopGroup. next ( ) ,
@@ -177,23 +177,23 @@ private struct Response: Codable, Equatable {
177
177
}
178
178
}
179
179
180
- public extension XCTestCase {
180
+ extension XCTestCase {
181
181
@available ( macOS 12 , iOS 15 , tvOS 15 , watchOS 8 , * )
182
- func XCTAsyncTest(
182
+ public func XCTAsyncTest(
183
183
expectationDescription: String = " Async operation " ,
184
184
timeout: TimeInterval = 3 ,
185
185
file: StaticString = #file,
186
186
line: Int = #line,
187
- operation: @escaping ( ) async throws -> ( )
187
+ operation: @escaping ( ) async throws -> Void
188
188
) {
189
189
let expectation = self . expectation ( description: expectationDescription)
190
190
Task {
191
- do { try await operation ( ) }
192
- catch {
193
- XCTFail ( " Error thrown while executing async function @ \( file) : \( line) : \( error) " )
194
- Thread . callStackSymbols. forEach { print ( $0) }
195
- }
196
- expectation. fulfill ( )
191
+ do { try await operation ( ) }
192
+ catch {
193
+ XCTFail ( " Error thrown while executing async function @ \( file) : \( line) : \( error) " )
194
+ Thread . callStackSymbols. forEach { print ( $0) }
195
+ }
196
+ expectation. fulfill ( )
197
197
}
198
198
self . wait ( for: [ expectation] , timeout: timeout)
199
199
}
0 commit comments