13
13
//===----------------------------------------------------------------------===//
14
14
15
15
import NIOCore
16
- import XCTest
16
+ import Testing
17
17
18
18
@testable import AWSLambdaRuntimeCore
19
19
20
- final class LambdaRequestIDTest : XCTestCase {
20
+ #if canImport(FoundationEssentials)
21
+ import FoundationEssentials
22
+ #else
23
+ import Foundation
24
+ #endif
25
+
26
+ @Suite ( " LambdaRequestID tests " )
27
+ struct LambdaRequestIDTest {
28
+ @Test
21
29
func testInitFromStringSuccess( ) {
22
30
let string = " E621E1F8-C36C-495A-93FC-0C247A3E6E5F "
23
31
var buffer = ByteBuffer ( string: string)
24
32
25
33
let requestID = buffer. readRequestID ( )
26
- XCTAssertEqual ( buffer. readerIndex, 36 )
27
- XCTAssertEqual ( buffer. readableBytes, 0 )
28
- XCTAssertEqual ( requestID? . uuidString, UUID ( uuidString: string) ? . uuidString)
29
- XCTAssertEqual ( requestID? . uppercased, string)
34
+ #expect ( buffer. readerIndex == 36 )
35
+ #expect ( buffer. readableBytes == 0 )
36
+ #expect ( requestID? . uuidString == UUID ( uuidString: string) ? . uuidString)
37
+ #expect ( requestID? . uppercased == string)
30
38
}
31
39
40
+ @Test
32
41
func testInitFromLowercaseStringSuccess( ) {
33
42
let string = " E621E1F8-C36C-495A-93FC-0C247A3E6E5F " . lowercased ( )
34
43
var originalBuffer = ByteBuffer ( string: string)
35
44
36
45
let requestID = originalBuffer. readRequestID ( )
37
- XCTAssertEqual ( originalBuffer. readerIndex, 36 )
38
- XCTAssertEqual ( originalBuffer. readableBytes, 0 )
39
- XCTAssertEqual ( requestID? . uuidString, UUID ( uuidString: string) ? . uuidString)
40
- XCTAssertEqual ( requestID? . lowercased, string)
46
+ #expect ( originalBuffer. readerIndex == 36 )
47
+ #expect ( originalBuffer. readableBytes == 0 )
48
+ #expect ( requestID? . uuidString == UUID ( uuidString: string) ? . uuidString)
49
+ #expect ( requestID? . lowercased == string)
41
50
42
51
var newBuffer = ByteBuffer ( )
43
52
originalBuffer. moveReaderIndex ( to: 0 )
44
- XCTAssertNoThrow ( try newBuffer. writeRequestID ( XCTUnwrap ( requestID) ) )
45
- XCTAssertEqual ( newBuffer, originalBuffer)
53
+ #expect ( throws : Never . self ) { try newBuffer. writeRequestID ( #require ( requestID) ) }
54
+ #expect ( newBuffer == originalBuffer)
46
55
}
47
56
57
+ @Test
48
58
func testInitFromStringMissingCharacterAtEnd( ) {
49
59
let string = " E621E1F8-C36C-495A-93FC-0C247A3E6E5 "
50
60
var buffer = ByteBuffer ( string: string)
51
61
52
62
let readableBeforeRead = buffer. readableBytes
53
63
let requestID = buffer. readRequestID ( )
54
- XCTAssertNil ( requestID)
55
- XCTAssertEqual ( buffer. readerIndex, 0 )
56
- XCTAssertEqual ( buffer. readableBytes, readableBeforeRead)
64
+ #expect ( requestID == nil )
65
+ #expect ( buffer. readerIndex == 0 )
66
+ #expect ( buffer. readableBytes == readableBeforeRead)
57
67
}
58
68
69
+ @Test
59
70
func testInitFromStringInvalidCharacterAtEnd( ) {
60
71
let string = " E621E1F8-C36C-495A-93FC-0C247A3E6E5H "
61
72
var buffer = ByteBuffer ( string: string)
62
73
63
74
let readableBeforeRead = buffer. readableBytes
64
75
let requestID = buffer. readRequestID ( )
65
- XCTAssertNil ( requestID)
66
- XCTAssertEqual ( buffer. readerIndex, 0 )
67
- XCTAssertEqual ( buffer. readableBytes, readableBeforeRead)
76
+ #expect ( requestID == nil )
77
+ #expect ( buffer. readerIndex == 0 )
78
+ #expect ( buffer. readableBytes == readableBeforeRead)
68
79
}
69
80
70
- func testInitFromStringInvalidSeparatorCharacter( ) {
71
- let invalid = [
81
+ @Test (
82
+ " Init from String with invalid separator character " ,
83
+ arguments: [
72
84
// with _ instead of -
73
85
" E621E1F8-C36C-495A-93FC_0C247A3E6E5F " ,
74
86
" E621E1F8-C36C-495A_93FC-0C247A3E6E5F " ,
@@ -81,18 +93,19 @@ final class LambdaRequestIDTest: XCTestCase {
81
93
" E621E1F8-C36C0495A-93FC-0C247A3E6E5F " ,
82
94
" E621E1F80C36C-495A-93FC-0C247A3E6E5F " ,
83
95
]
96
+ )
97
+ func testInitFromStringInvalidSeparatorCharacter( _ input: String ) {
84
98
85
- for string in invalid {
86
- var buffer = ByteBuffer ( string: string)
99
+ var buffer = ByteBuffer ( string: input)
87
100
88
- let readableBeforeRead = buffer. readableBytes
89
- let requestID = buffer. readRequestID ( )
90
- XCTAssertNil ( requestID)
91
- XCTAssertEqual ( buffer. readerIndex, 0 )
92
- XCTAssertEqual ( buffer. readableBytes, readableBeforeRead)
93
- }
101
+ let readableBeforeRead = buffer. readableBytes
102
+ let requestID = buffer. readRequestID ( )
103
+ #expect( requestID == nil )
104
+ #expect( buffer. readerIndex == 0 )
105
+ #expect( buffer. readableBytes == readableBeforeRead)
94
106
}
95
107
108
+ @Test
96
109
func testInitFromNSStringSuccess( ) {
97
110
let nsString = NSMutableString ( capacity: 16 )
98
111
nsString. append ( " E621E1F8 " )
@@ -110,93 +123,99 @@ final class LambdaRequestIDTest: XCTestCase {
110
123
// achieve this though at the moment
111
124
// XCTAssertFalse((nsString as String).isContiguousUTF8)
112
125
let requestID = LambdaRequestID ( uuidString: nsString as String )
113
- XCTAssertEqual ( requestID? . uuidString, LambdaRequestID ( uuidString: nsString as String ) ? . uuidString)
114
- XCTAssertEqual ( requestID? . uppercased, nsString as String )
126
+ #expect ( requestID? . uuidString == LambdaRequestID ( uuidString: nsString as String ) ? . uuidString)
127
+ #expect ( requestID? . uppercased == nsString as String )
115
128
}
116
129
130
+ @Test
117
131
func testUnparse( ) {
118
132
let string = " E621E1F8-C36C-495A-93FC-0C247A3E6E5F "
119
133
let requestID = LambdaRequestID ( uuidString: string)
120
- XCTAssertEqual ( string. lowercased ( ) , requestID? . lowercased)
134
+ #expect ( string. lowercased ( ) == requestID? . lowercased)
121
135
}
122
136
137
+ @Test
123
138
func testDescription( ) {
124
139
let requestID = LambdaRequestID ( )
125
140
let fduuid = UUID ( uuid: requestID. uuid)
126
141
127
- XCTAssertEqual ( fduuid. description, requestID. description)
128
- XCTAssertEqual ( fduuid. debugDescription, requestID. debugDescription)
142
+ #expect ( fduuid. description == requestID. description)
143
+ #expect ( fduuid. debugDescription == requestID. debugDescription)
129
144
}
130
145
146
+ @Test
131
147
func testFoundationInteropFromFoundation( ) {
132
148
let fduuid = UUID ( )
133
149
let requestID = LambdaRequestID ( uuid: fduuid. uuid)
134
150
135
- XCTAssertEqual ( fduuid. uuid. 0 , requestID. uuid. 0 )
136
- XCTAssertEqual ( fduuid. uuid. 1 , requestID. uuid. 1 )
137
- XCTAssertEqual ( fduuid. uuid. 2 , requestID. uuid. 2 )
138
- XCTAssertEqual ( fduuid. uuid. 3 , requestID. uuid. 3 )
139
- XCTAssertEqual ( fduuid. uuid. 4 , requestID. uuid. 4 )
140
- XCTAssertEqual ( fduuid. uuid. 5 , requestID. uuid. 5 )
141
- XCTAssertEqual ( fduuid. uuid. 6 , requestID. uuid. 6 )
142
- XCTAssertEqual ( fduuid. uuid. 7 , requestID. uuid. 7 )
143
- XCTAssertEqual ( fduuid. uuid. 8 , requestID. uuid. 8 )
144
- XCTAssertEqual ( fduuid. uuid. 9 , requestID. uuid. 9 )
145
- XCTAssertEqual ( fduuid. uuid. 10 , requestID. uuid. 10 )
146
- XCTAssertEqual ( fduuid. uuid. 11 , requestID. uuid. 11 )
147
- XCTAssertEqual ( fduuid. uuid. 12 , requestID. uuid. 12 )
148
- XCTAssertEqual ( fduuid. uuid. 13 , requestID. uuid. 13 )
149
- XCTAssertEqual ( fduuid. uuid. 14 , requestID. uuid. 14 )
150
- XCTAssertEqual ( fduuid. uuid. 15 , requestID. uuid. 15 )
151
+ #expect ( fduuid. uuid. 0 == requestID. uuid. 0 )
152
+ #expect ( fduuid. uuid. 1 == requestID. uuid. 1 )
153
+ #expect ( fduuid. uuid. 2 == requestID. uuid. 2 )
154
+ #expect ( fduuid. uuid. 3 == requestID. uuid. 3 )
155
+ #expect ( fduuid. uuid. 4 == requestID. uuid. 4 )
156
+ #expect ( fduuid. uuid. 5 == requestID. uuid. 5 )
157
+ #expect ( fduuid. uuid. 6 == requestID. uuid. 6 )
158
+ #expect ( fduuid. uuid. 7 == requestID. uuid. 7 )
159
+ #expect ( fduuid. uuid. 8 == requestID. uuid. 8 )
160
+ #expect ( fduuid. uuid. 9 == requestID. uuid. 9 )
161
+ #expect ( fduuid. uuid. 10 == requestID. uuid. 10 )
162
+ #expect ( fduuid. uuid. 11 == requestID. uuid. 11 )
163
+ #expect ( fduuid. uuid. 12 == requestID. uuid. 12 )
164
+ #expect ( fduuid. uuid. 13 == requestID. uuid. 13 )
165
+ #expect ( fduuid. uuid. 14 == requestID. uuid. 14 )
166
+ #expect ( fduuid. uuid. 15 == requestID. uuid. 15 )
151
167
}
152
168
169
+ @Test
153
170
func testFoundationInteropToFoundation( ) {
154
171
let requestID = LambdaRequestID ( )
155
172
let fduuid = UUID ( uuid: requestID. uuid)
156
173
157
- XCTAssertEqual ( fduuid. uuid. 0 , requestID. uuid. 0 )
158
- XCTAssertEqual ( fduuid. uuid. 1 , requestID. uuid. 1 )
159
- XCTAssertEqual ( fduuid. uuid. 2 , requestID. uuid. 2 )
160
- XCTAssertEqual ( fduuid. uuid. 3 , requestID. uuid. 3 )
161
- XCTAssertEqual ( fduuid. uuid. 4 , requestID. uuid. 4 )
162
- XCTAssertEqual ( fduuid. uuid. 5 , requestID. uuid. 5 )
163
- XCTAssertEqual ( fduuid. uuid. 6 , requestID. uuid. 6 )
164
- XCTAssertEqual ( fduuid. uuid. 7 , requestID. uuid. 7 )
165
- XCTAssertEqual ( fduuid. uuid. 8 , requestID. uuid. 8 )
166
- XCTAssertEqual ( fduuid. uuid. 9 , requestID. uuid. 9 )
167
- XCTAssertEqual ( fduuid. uuid. 10 , requestID. uuid. 10 )
168
- XCTAssertEqual ( fduuid. uuid. 11 , requestID. uuid. 11 )
169
- XCTAssertEqual ( fduuid. uuid. 12 , requestID. uuid. 12 )
170
- XCTAssertEqual ( fduuid. uuid. 13 , requestID. uuid. 13 )
171
- XCTAssertEqual ( fduuid. uuid. 14 , requestID. uuid. 14 )
172
- XCTAssertEqual ( fduuid. uuid. 15 , requestID. uuid. 15 )
174
+ #expect ( fduuid. uuid. 0 == requestID. uuid. 0 )
175
+ #expect ( fduuid. uuid. 1 == requestID. uuid. 1 )
176
+ #expect ( fduuid. uuid. 2 == requestID. uuid. 2 )
177
+ #expect ( fduuid. uuid. 3 == requestID. uuid. 3 )
178
+ #expect ( fduuid. uuid. 4 == requestID. uuid. 4 )
179
+ #expect ( fduuid. uuid. 5 == requestID. uuid. 5 )
180
+ #expect ( fduuid. uuid. 6 == requestID. uuid. 6 )
181
+ #expect ( fduuid. uuid. 7 == requestID. uuid. 7 )
182
+ #expect ( fduuid. uuid. 8 == requestID. uuid. 8 )
183
+ #expect ( fduuid. uuid. 9 == requestID. uuid. 9 )
184
+ #expect ( fduuid. uuid. 10 == requestID. uuid. 10 )
185
+ #expect ( fduuid. uuid. 11 == requestID. uuid. 11 )
186
+ #expect ( fduuid. uuid. 12 == requestID. uuid. 12 )
187
+ #expect ( fduuid. uuid. 13 == requestID. uuid. 13 )
188
+ #expect ( fduuid. uuid. 14 == requestID. uuid. 14 )
189
+ #expect ( fduuid. uuid. 15 == requestID. uuid. 15 )
173
190
}
174
191
192
+ @Test
175
193
func testHashing( ) {
176
194
let requestID = LambdaRequestID ( )
177
195
let fduuid = UUID ( uuid: requestID. uuid)
178
- XCTAssertEqual ( fduuid. hashValue, requestID. hashValue)
196
+ #expect ( fduuid. hashValue == requestID. hashValue)
179
197
180
198
var _uuid = requestID. uuid
181
199
_uuid. 0 = _uuid. 0 > 0 ? _uuid. 0 - 1 : 1
182
- XCTAssertNotEqual ( UUID ( uuid: _uuid) . hashValue, requestID. hashValue)
200
+ #expect ( UUID ( uuid: _uuid) . hashValue != requestID. hashValue)
183
201
}
184
202
185
- func testEncoding( ) {
203
+ @Test
204
+ func testEncoding( ) throws {
186
205
struct Test : Codable {
187
206
let requestID : LambdaRequestID
188
207
}
189
208
let requestID = LambdaRequestID ( )
190
209
let test = Test ( requestID: requestID)
191
210
192
211
var data : Data ?
193
- XCTAssertNoThrow ( data = try JSONEncoder ( ) . encode ( test) )
194
- XCTAssertEqual (
195
- try String ( decoding: XCTUnwrap ( data) , as: Unicode . UTF8. self) ,
196
- #"{"requestID":" \#( requestID. uuidString) "}"#
212
+ #expect( throws: Never . self) { data = try JSONEncoder ( ) . encode ( test) }
213
+ #expect(
214
+ try String ( decoding: #require( data) , as: Unicode . UTF8. self) == #"{"requestID":" \#( requestID. uuidString) "}"#
197
215
)
198
216
}
199
217
218
+ @Test
200
219
func testDecodingSuccess( ) {
201
220
struct Test : Codable {
202
221
let requestID : LambdaRequestID
@@ -205,10 +224,11 @@ final class LambdaRequestIDTest: XCTestCase {
205
224
let data = #"{"requestID":" \#( requestID. uuidString) "}"# . data ( using: . utf8)
206
225
207
226
var result : Test ?
208
- XCTAssertNoThrow ( result = try JSONDecoder ( ) . decode ( Test . self, from: XCTUnwrap ( data) ) )
209
- XCTAssertEqual ( result? . requestID, requestID)
227
+ #expect ( throws : Never . self ) { result = try JSONDecoder ( ) . decode ( Test . self, from: #require ( data) ) }
228
+ #expect ( result? . requestID == requestID)
210
229
}
211
230
231
+ @Test
212
232
func testDecodingFailure( ) {
213
233
struct Test : Codable {
214
234
let requestID : LambdaRequestID
@@ -218,12 +238,13 @@ final class LambdaRequestIDTest: XCTestCase {
218
238
_ = requestIDString. removeLast ( )
219
239
let data = #"{"requestID":" \#( requestIDString) "}"# . data ( using: . utf8)
220
240
221
- XCTAssertThrowsError ( try JSONDecoder ( ) . decode ( Test . self, from : XCTUnwrap ( data ) ) ) { error in
222
- XCTAssertNotNil ( error as? DecodingError )
241
+ #expect ( throws : DecodingError . self) {
242
+ try JSONDecoder ( ) . decode ( Test . self , from : #require ( data ) )
223
243
}
224
244
}
225
245
246
+ @Test
226
247
func testStructSize( ) {
227
- XCTAssertEqual ( MemoryLayout< LambdaRequestID> . size, 16 )
248
+ #expect ( MemoryLayout< LambdaRequestID> . size == 16 )
228
249
}
229
250
}
0 commit comments