Sfoglia il codice sorgente

Added response serialization tests for delegate error cases.

Christian Noon 10 anni fa
parent
commit
096beb854f
1 ha cambiato i file con 81 aggiunte e 0 eliminazioni
  1. 81 0
      Tests/ResponseSerializationTests.swift

+ 81 - 0
Tests/ResponseSerializationTests.swift

@@ -25,6 +25,7 @@ import Foundation
 import XCTest
 
 class ResponseSerializationTestCase: BaseTestCase {
+    let error = NSError(domain: Error.Domain, code: -10000, userInfo: nil)
 
     // MARK: - Data Response Serializer Tests
 
@@ -62,6 +63,26 @@ class ResponseSerializationTestCase: BaseTestCase {
         }
     }
 
+    func testThatDataResponseSerializerFailsWhenErrorIsNotNil() {
+        // Given
+        let serializer = Request.dataResponseSerializer()
+
+        // When
+        let result = serializer.serializeResponse(nil, nil, nil, error)
+
+        // Then
+        XCTAssertTrue(result.isFailure, "result is failure should be true")
+        XCTAssertNil(result.value, "result value should be nil")
+        XCTAssertNotNil(result.error, "result error should not be nil")
+
+        if let error = result.error {
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, self.error.code, "error code should match expected value")
+        } else {
+            XCTFail("error should not be nil")
+        }
+    }
+
     // MARK: - String Response Serializer Tests
 
     func testThatStringResponseSerializerFailsWhenDataIsNil() {
@@ -190,6 +211,26 @@ class ResponseSerializationTestCase: BaseTestCase {
         }
     }
 
+    func testThatStringResponseSerializerFailsWhenErrorIsNotNil() {
+        // Given
+        let serializer = Request.stringResponseSerializer()
+
+        // When
+        let result = serializer.serializeResponse(nil, nil, nil, error)
+
+        // Then
+        XCTAssertTrue(result.isFailure, "result is failure should be true")
+        XCTAssertNil(result.value, "result value should be nil")
+        XCTAssertNotNil(result.error, "result error should not be nil")
+
+        if let error = result.error {
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, self.error.code, "error code should match expected value")
+        } else {
+            XCTFail("error should not be nil")
+        }
+    }
+
     // MARK: - JSON Response Serializer Tests
 
     func testThatJSONResponseSerializerFailsWhenDataIsNil() {
@@ -267,6 +308,26 @@ class ResponseSerializationTestCase: BaseTestCase {
         }
     }
 
+    func testThatJSONResponseSerializerFailsWhenErrorIsNotNil() {
+        // Given
+        let serializer = Request.JSONResponseSerializer()
+
+        // When
+        let result = serializer.serializeResponse(nil, nil, nil, error)
+
+        // Then
+        XCTAssertTrue(result.isFailure, "result is failure should be true")
+        XCTAssertNil(result.value, "result value should be nil")
+        XCTAssertNotNil(result.error, "result error should not be nil")
+
+        if let error = result.error {
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, self.error.code, "error code should match expected value")
+        } else {
+            XCTFail("error should not be nil")
+        }
+    }
+
     // MARK: - Property List Response Serializer Tests
 
     func testThatPropertyListResponseSerializerFailsWhenDataIsNil() {
@@ -343,4 +404,24 @@ class ResponseSerializationTestCase: BaseTestCase {
             XCTFail("error should not be nil")
         }
     }
+
+    func testThatPropertyListResponseSerializerFailsWhenErrorIsNotNil() {
+        // Given
+        let serializer = Request.propertyListResponseSerializer()
+
+        // When
+        let result = serializer.serializeResponse(nil, nil, nil, error)
+
+        // Then
+        XCTAssertTrue(result.isFailure, "result is failure should be true")
+        XCTAssertNil(result.value, "result value should be nil")
+        XCTAssertNotNil(result.error, "result error should not be nil")
+
+        if let error = result.error {
+            XCTAssertEqual(error.domain, Error.Domain, "error domain should match expected value")
+            XCTAssertEqual(error.code, self.error.code, "error code should match expected value")
+        } else {
+            XCTFail("error should not be nil")
+        }
+    }
 }