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

[Issue #732] Swapped out NSError for ErrorType in all Result types.

Christian Noon 10 лет назад
Родитель
Сommit
64a004472c

+ 1 - 1
Source/Request.swift

@@ -193,7 +193,7 @@ public class Request {
         let progress: NSProgress
 
         var data: NSData? { return nil }
-        var error: NSError?
+        var error: ErrorType?
 
         var credential: NSURLCredential?
 

+ 1 - 1
Source/ResponseSerialization.swift

@@ -77,7 +77,7 @@ extension Request {
     */
     public func response(
         queue queue: dispatch_queue_t? = nil,
-        completionHandler: (NSURLRequest?, NSHTTPURLResponse?, NSData?, NSError?) -> Void)
+        completionHandler: (NSURLRequest?, NSHTTPURLResponse?, NSData?, ErrorType?) -> Void)
         -> Self
     {
         delegate.queue.addOperationWithBlock {

+ 1 - 1
Source/Upload.swift

@@ -202,7 +202,7 @@ extension Manager {
     */
     public enum MultipartFormDataEncodingResult {
         case Success(request: Request, streamingFromDisk: Bool, streamFileURL: NSURL?)
-        case Failure(NSError)
+        case Failure(ErrorType)
     }
 
     /**

+ 1 - 1
Source/Validation.swift

@@ -32,7 +32,7 @@ extension Request {
     */
     public enum ValidationResult {
         case Success
-        case Failure(NSError)
+        case Failure(ErrorType)
     }
 
     /**

+ 12 - 6
Tests/AuthenticationTests.swift

@@ -57,7 +57,7 @@ class BasicAuthenticationTestCase: AuthenticationTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -78,7 +78,10 @@ class BasicAuthenticationTestCase: AuthenticationTestCase {
         XCTAssertNil(response, "response should be nil")
         XCTAssertNotNil(data, "data should not be nil")
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? 0, -999, "error should be NSURLErrorDomain Code -999 'cancelled'")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, -999, "error should be NSURLErrorDomain Code -999 'cancelled'")
+        }
     }
 
     func testHTTPBasicAuthenticationWithValidCredentials() {
@@ -88,7 +91,7 @@ class BasicAuthenticationTestCase: AuthenticationTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -130,7 +133,7 @@ class HTTPDigestAuthenticationTestCase: AuthenticationTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -151,7 +154,10 @@ class HTTPDigestAuthenticationTestCase: AuthenticationTestCase {
         XCTAssertNil(response, "response should be nil")
         XCTAssertNotNil(data, "data should not be nil")
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? 0, -999, "error should be NSURLErrorDomain Code -999 'cancelled'")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, -999, "error should be NSURLErrorDomain Code -999 'cancelled'")
+        }
     }
 
     func testHTTPDigestAuthenticationWithValidCredentials() {
@@ -161,7 +167,7 @@ class HTTPDigestAuthenticationTestCase: AuthenticationTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)

+ 4 - 4
Tests/DownloadTests.swift

@@ -83,7 +83,7 @@ class DownloadResponseTestCase: BaseTestCase {
 
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.download(.GET, URLString, destination: destination)
@@ -165,7 +165,7 @@ class DownloadResponseTestCase: BaseTestCase {
         var responseRequest: NSURLRequest?
         var responseResponse: NSHTTPURLResponse?
         var responseData: NSData?
-        var responseError: NSError?
+        var responseError: ErrorType?
 
         // When
         let download = Alamofire.download(.GET, URLString) { _, _ in
@@ -262,7 +262,7 @@ class DownloadResumeDataTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: AnyObject?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         let download = Alamofire.download(.GET, URLString, destination: destination)
@@ -295,7 +295,7 @@ class DownloadResumeDataTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: AnyObject?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         let download = Alamofire.download(.GET, URLString, destination: destination)

+ 3 - 3
Tests/RequestTests.swift

@@ -87,7 +87,7 @@ class RequestResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
@@ -121,7 +121,7 @@ class RequestResponseTestCase: BaseTestCase {
         var responseRequest: NSURLRequest?
         var responseResponse: NSHTTPURLResponse?
         var responseData: NSData?
-        var responseError: NSError?
+        var responseError: ErrorType?
 
         // When
         let request = Alamofire.request(.GET, URLString)
@@ -201,7 +201,7 @@ class RequestResponseTestCase: BaseTestCase {
         var responseRequest: NSURLRequest?
         var responseResponse: NSHTTPURLResponse?
         var responseData: NSData?
-        var responseError: NSError?
+        var responseError: ErrorType?
 
         // When
         let request = Alamofire.request(.GET, URLString)

+ 5 - 5
Tests/ResponseTests.swift

@@ -297,7 +297,7 @@ class RedirectResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -332,7 +332,7 @@ class RedirectResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -372,7 +372,7 @@ class RedirectResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -412,7 +412,7 @@ class RedirectResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -454,7 +454,7 @@ class RedirectResponseTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)

+ 50 - 24
Tests/TLSEvaluationTests.swift

@@ -77,7 +77,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         // Given
         let expectation = expectationWithDescription("\(URL)")
         let manager = Manager(configuration: configuration)
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -90,11 +90,12 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(
-            error?.code ?? -1,
-            NSURLErrorServerCertificateUntrusted,
-            "error should be NSURLErrorServerCertificateUntrusted"
-        )
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorServerCertificateUntrusted, "code should be untrusted server certficate")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 
     // MARK: Server Trust Policy - Perform Default Tests
@@ -108,7 +109,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -121,7 +122,12 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? -1, NSURLErrorCancelled, "error should be NSURLErrorCancelled")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorCancelled, "code should be cancelled")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 
     // MARK: Server Trust Policy - Certificate Pinning Tests
@@ -139,7 +145,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -152,7 +158,12 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? -1, NSURLErrorCancelled, "error should be NSURLErrorCancelled")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorCancelled, "code should be cancelled")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 
     func testThatExpiredCertificateRequestFailsWhenPinningAllCertificatesWithCertificateChainValidation() {
@@ -168,7 +179,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -181,7 +192,12 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? -1, NSURLErrorCancelled, "error should be NSURLErrorCancelled")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorCancelled, "code should be cancelled")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 
     func testThatExpiredCertificateRequestSucceedsWhenPinningLeafCertificateWithoutCertificateChainValidation() {
@@ -197,7 +213,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -225,7 +241,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -253,7 +269,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -283,7 +299,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -296,7 +312,12 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? -1, NSURLErrorCancelled, "error should be NSURLErrorCancelled")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorCancelled, "code should be cancelled")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 
     func testThatExpiredCertificateRequestSucceedsWhenPinningLeafPublicKeyWithoutCertificateChainValidation() {
@@ -312,7 +333,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -340,7 +361,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -368,7 +389,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -394,7 +415,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -426,7 +447,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -456,7 +477,7 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
         )
 
         let expectation = expectationWithDescription("\(URL)")
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.GET, URL)
@@ -469,6 +490,11 @@ class TLSEvaluationExpiredLeafCertificateTestCase: BaseTestCase {
 
         // Then
         XCTAssertNotNil(error, "error should not be nil")
-        XCTAssertEqual(error?.code ?? -1, NSURLErrorCancelled, "error should be NSURLErrorCancelled")
+
+        if let code = (error as? NSError)?.code {
+            XCTAssertEqual(code, NSURLErrorCancelled, "code should be cancelled")
+        } else {
+            XCTFail("error should be an NSError")
+        }
     }
 }

+ 1 - 1
Tests/URLProtocolTests.swift

@@ -138,7 +138,7 @@ class URLProtocolTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(URLRequest)

+ 5 - 5
Tests/UploadTests.swift

@@ -148,7 +148,7 @@ class UploadDataTestCase: BaseTestCase {
 
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.upload(.POST, URLString, data: data)
@@ -187,7 +187,7 @@ class UploadDataTestCase: BaseTestCase {
         var responseRequest: NSURLRequest?
         var responseResponse: NSHTTPURLResponse?
         var responseData: NSData?
-        var responseError: NSError?
+        var responseError: ErrorType?
 
         // When
         let upload = Alamofire.upload(.POST, URLString, data: data)
@@ -275,7 +275,7 @@ class UploadMultipartFormDataTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.upload(
@@ -332,7 +332,7 @@ class UploadMultipartFormDataTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.upload(
@@ -612,7 +612,7 @@ class UploadMultipartFormDataTestCase: BaseTestCase {
         var request: NSURLRequest?
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.upload(

+ 40 - 24
Tests/ValidationTests.swift

@@ -30,7 +30,7 @@ class StatusCodeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/status/200"
         let expectation = expectationWithDescription("request should return 200 status code")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -51,7 +51,7 @@ class StatusCodeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/status/404"
         let expectation = expectationWithDescription("request should return 404 status code")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -66,9 +66,11 @@ class StatusCodeValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.StatusCodeValidationFailed.rawValue, "code should be status code validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 
@@ -77,7 +79,7 @@ class StatusCodeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/status/201"
         let expectation = expectationWithDescription("request should return 201 status code")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -92,9 +94,11 @@ class StatusCodeValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.StatusCodeValidationFailed.rawValue, "code should be status code validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 }
@@ -107,7 +111,7 @@ class ContentTypeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/ip"
         let expectation = expectationWithDescription("request should succeed and return ip")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -128,7 +132,7 @@ class ContentTypeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/ip"
         let expectation = expectationWithDescription("request should succeed and return ip")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -151,7 +155,7 @@ class ContentTypeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/xml"
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -166,9 +170,11 @@ class ContentTypeValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.ContentTypeValidationFailed.rawValue, "code should be content type validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 
@@ -177,7 +183,7 @@ class ContentTypeValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/xml"
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -192,9 +198,11 @@ class ContentTypeValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.ContentTypeValidationFailed.rawValue, "code should be content type validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 
@@ -250,7 +258,7 @@ class ContentTypeValidationTestCase: BaseTestCase {
 
         var response: NSHTTPURLResponse?
         var data: NSData?
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         manager.request(.DELETE, URLString)
@@ -285,7 +293,7 @@ class MultipleValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/ip"
         let expectation = expectationWithDescription("request should succeed and return ip")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -307,7 +315,7 @@ class MultipleValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/xml"
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -323,9 +331,11 @@ class MultipleValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.StatusCodeValidationFailed.rawValue, "code should be status code validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 
@@ -334,7 +344,7 @@ class MultipleValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/xml"
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -350,9 +360,11 @@ class MultipleValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.ContentTypeValidationFailed.rawValue, "code should be content type validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 }
@@ -368,7 +380,7 @@ class AutomaticValidationTestCase: BaseTestCase {
 
         let expectation = expectationWithDescription("request should succeed and return ip")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(mutableURLRequest)
@@ -389,7 +401,7 @@ class AutomaticValidationTestCase: BaseTestCase {
         let URLString = "https://httpbin.org/status/404"
         let expectation = expectationWithDescription("request should return 404 status code")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(.GET, URLString)
@@ -404,9 +416,11 @@ class AutomaticValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.StatusCodeValidationFailed.rawValue, "code should be status code validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 
@@ -418,7 +432,7 @@ class AutomaticValidationTestCase: BaseTestCase {
 
         let expectation = expectationWithDescription("request should succeed and return ip")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(mutableURLRequest)
@@ -444,7 +458,7 @@ class AutomaticValidationTestCase: BaseTestCase {
 
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(mutableURLRequest)
@@ -468,7 +482,7 @@ class AutomaticValidationTestCase: BaseTestCase {
 
         let expectation = expectationWithDescription("request should succeed and return xml")
 
-        var error: NSError?
+        var error: ErrorType?
 
         // When
         Alamofire.request(mutableURLRequest)
@@ -483,9 +497,11 @@ class AutomaticValidationTestCase: BaseTestCase {
         // Then
         XCTAssertNotNil(error, "error should not be nil")
 
-        if let error = error {
+        if let error = error as? NSError {
             XCTAssertEqual(error.domain, Error.Domain, "domain should be Alamofire error domain")
             XCTAssertEqual(error.code, Error.Code.ContentTypeValidationFailed.rawValue, "code should be content type validation failure")
+        } else {
+            XCTFail("error should be an NSError")
         }
     }
 }