@@ -238,4 +238,38 @@ class NetworkServiceTest: XCTestCase {
238238 }
239239 XCTAssertEqual ( networkAccess. request? . url? . absoluteString, " https://bahn.de/train " )
240240 }
241+
242+ @available ( watchOS 6 . 0 , * )
243+ @available ( macOS 10 . 15 . 0 , * )
244+ @available ( iOS 13 . 0 . 0 , * )
245+ func testGIVEN_aRequest_WHEN_requestWithAsyncResultAndResponse_THEN_ShouldRespond( ) async throws {
246+ // GIVEN
247+ networkAccess. changeMock ( data: Train . validJSONData, response: . defaultMock, error: nil )
248+
249+ //When
250+ let ( result, response) = try await networkService. request ( resource)
251+
252+
253+ //Then
254+ XCTAssertEqual ( result. name, self . trainName)
255+ XCTAssertEqual ( response, . defaultMock)
256+ XCTAssertEqual ( networkAccess. request? . url? . absoluteString, " https://bahn.de/train " )
257+ }
258+
259+ @available ( watchOS 6 . 0 , * )
260+ @available ( macOS 10 . 15 . 0 , * )
261+ @available ( iOS 13 . 0 . 0 , * )
262+ func testGIVEN_aRequest_WHEN_requestWithAsyncResultAndResponse_THEN_ShouldThwo( ) async {
263+ // GIVEN
264+ let error = NSError ( domain: " " , code: 0 , userInfo: nil )
265+ networkAccess. changeMock ( data: nil , response: nil , error: error)
266+
267+ //When
268+ do {
269+ try await networkService. request ( resource)
270+ XCTFail ( " Schould throw " )
271+ } catch let error {
272+ XCTAssertTrue ( error is NetworkError )
273+ }
274+ }
241275}
0 commit comments