Просмотр исходного кода

Response test host error fix (#3003)

* Fixed unit test that failed with the incorrect URLError result

* Refined unit test that check for host connection failure so that the tests can succeed when there are multiple reasons that the host failure can occurr.

* Refactoring based on pull request feedback

* Fix tabs vs. spaces.
tronthomas 6 лет назад
Родитель
Сommit
6fd314a63c
2 измененных файлов с 13 добавлено и 9 удалено
  1. 5 0
      Tests/AFError+AlamofireTests.swift
  2. 8 9
      Tests/ResponseTests.swift

+ 5 - 0
Tests/AFError+AlamofireTests.swift

@@ -174,6 +174,11 @@ extension AFError {
         if case let .urlRequestValidationFailed(reason) = self, reason.isBodyDataInGETRequest { return true }
         return false
     }
+    
+    var isHostURLError: Bool {
+        guard let errorCode = (underlyingError as? URLError)?.code else { return false }
+        return [.cannotConnectToHost, .cannotFindHost].contains(errorCode)
+    }
 }
 
 // MARK: -

+ 8 - 9
Tests/ResponseTests.swift

@@ -71,7 +71,7 @@ final class ResponseTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertNotNil(response?.error)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -124,7 +124,7 @@ final class ResponseDataTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -177,7 +177,7 @@ final class ResponseStringTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -230,7 +230,7 @@ final class ResponseJSONTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 
@@ -369,7 +369,7 @@ final class ResponseJSONDecodableTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -426,7 +426,7 @@ final class ResponseMapTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -518,7 +518,7 @@ final class ResponseTryMapTestCase: BaseTestCase {
         XCTAssertNil(response?.data)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.error?.asAFError?.isSessionTaskError, true)
-        XCTAssertEqual((response?.error?.asAFError?.underlyingError as? URLError)?.code, .cannotFindHost)
+        XCTAssertEqual(response?.error?.asAFError?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }
@@ -672,8 +672,7 @@ final class ResponseTryMapErrorTestCase: BaseTestCase {
         else { XCTFail(); return }
 
         XCTAssertEqual(underlyingError.asAFError?.isSessionTaskError, true)
-        XCTAssertEqual((underlyingError.asAFError?.underlyingError as? URLError)?.code, .cannotFindHost)
-
+        XCTAssertEqual(underlyingError.asAFError?.isHostURLError, true)
         XCTAssertNotNil(response?.metrics)
     }
 }