Kaynağa Gözat

Added tests around all combinations of Manager initialization.

Christian Noon 10 yıl önce
ebeveyn
işleme
24f38683d5
1 değiştirilmiş dosya ile 109 ekleme ve 1 silme
  1. 109 1
      Tests/ManagerTests.swift

+ 109 - 1
Tests/ManagerTests.swift

@@ -20,11 +20,117 @@
 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 // THE SOFTWARE.
 
-import Alamofire
+@testable import Alamofire
 import Foundation
 import XCTest
 
 class ManagerTestCase: BaseTestCase {
+
+    // MARK: Initialization Tests
+
+    func testInitializerWithDefaultArguments() {
+        // Given, When
+        let manager = Manager()
+
+        // Then
+        XCTAssertNotNil(manager.session.delegate, "session delegate should not be nil")
+        XCTAssertTrue(manager.delegate === manager.session.delegate, "manager delegate should equal session delegate")
+        XCTAssertNil(manager.session.serverTrustPolicyManager, "session server trust policy manager should be nil")
+    }
+
+    func testInitializerWithSpecifiedArguments() {
+        // Given
+        let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
+        let delegate = Manager.SessionDelegate()
+        let serverTrustPolicyManager = ServerTrustPolicyManager(policies: [:])
+
+        // When
+        let manager = Manager(
+            configuration: configuration,
+            delegate: delegate,
+            serverTrustPolicyManager: serverTrustPolicyManager
+        )
+
+        // Then
+        XCTAssertNotNil(manager.session.delegate, "session delegate should not be nil")
+        XCTAssertTrue(manager.delegate === manager.session.delegate, "manager delegate should equal session delegate")
+        XCTAssertNotNil(manager.session.serverTrustPolicyManager, "session server trust policy manager should not be nil")
+    }
+
+    func testThatFailableInitializerSucceedsWithDefaultArguments() {
+        // Given
+        let delegate = Manager.SessionDelegate()
+        let session: NSURLSession = {
+            let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
+            return NSURLSession(configuration: configuration, delegate: delegate, delegateQueue: nil)
+        }()
+
+        // When
+        let manager = Manager(session: session, delegate: delegate)
+
+        // Then
+        if let manager = manager {
+            XCTAssertTrue(manager.delegate === manager.session.delegate, "manager delegate should equal session delegate")
+            XCTAssertNil(manager.session.serverTrustPolicyManager, "session server trust policy manager should be nil")
+        } else {
+            XCTFail("manager should not be nil")
+        }
+    }
+
+    func testThatFailableInitializerSucceedsWithSpecifiedArguments() {
+        // Given
+        let delegate = Manager.SessionDelegate()
+        let session: NSURLSession = {
+            let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
+            return NSURLSession(configuration: configuration, delegate: delegate, delegateQueue: nil)
+        }()
+
+        let serverTrustPolicyManager = ServerTrustPolicyManager(policies: [:])
+
+        // When
+        let manager = Manager(session: session, delegate: delegate, serverTrustPolicyManager: serverTrustPolicyManager)
+
+        // Then
+        if let manager = manager {
+            XCTAssertTrue(manager.delegate === manager.session.delegate, "manager delegate should equal session delegate")
+            XCTAssertNotNil(manager.session.serverTrustPolicyManager, "session server trust policy manager should not be nil")
+        } else {
+            XCTFail("manager should not be nil")
+        }
+    }
+
+    func testThatFailableInitializerFailsWithWhenDelegateDoesNotEqualSessionDelegate() {
+        // Given
+        let delegate = Manager.SessionDelegate()
+        let session: NSURLSession = {
+            let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
+            return NSURLSession(configuration: configuration, delegate: Manager.SessionDelegate(), delegateQueue: nil)
+        }()
+
+        // When
+        let manager = Manager(session: session, delegate: delegate)
+
+        // Then
+        XCTAssertNil(manager, "manager should be nil")
+    }
+
+    func testThatFailableInitializerFailsWhenSessionDelegateIsNil() {
+        // Given
+        let delegate = Manager.SessionDelegate()
+        let session: NSURLSession = {
+            let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
+            return NSURLSession(configuration: configuration, delegate: nil, delegateQueue: nil)
+        }()
+
+        // When
+        let manager = Manager(session: session, delegate: delegate)
+
+        // Then
+        XCTAssertNil(manager, "manager should be nil")
+    }
+
+    // MARK: Start Requests Immediately Tests
+
     func testSetStartRequestsImmediatelyToFalseAndResumeRequest() {
         // Given
         let manager = Alamofire.Manager()
@@ -52,6 +158,8 @@ class ManagerTestCase: BaseTestCase {
         XCTAssertTrue(response?.statusCode == 200, "response status code should be 200")
     }
 
+    // MARK: Deinitialization Tests
+
     func testReleasingManagerWithPendingRequestDeinitializesSuccessfully() {
         // Given
         var manager: Manager? = Alamofire.Manager()