Browse Source

Fixed issue in resume data tests where request was being cancelled multiple times.

Christian Noon 9 years ago
parent
commit
4b64169dd7
1 changed files with 21 additions and 9 deletions
  1. 21 9
      Tests/DownloadTests.swift

+ 21 - 9
Tests/DownloadTests.swift

@@ -387,12 +387,19 @@ class DownloadResumeDataTestCase: BaseTestCase {
     func testThatCancelledDownloadResponseDataMatchesResumeData() {
     func testThatCancelledDownloadResponseDataMatchesResumeData() {
         // Given
         // Given
         let expectation = self.expectation(description: "Download should be cancelled")
         let expectation = self.expectation(description: "Download should be cancelled")
+        var cancelled = false
+
         var response: DefaultDownloadResponse?
         var response: DefaultDownloadResponse?
 
 
         // When
         // When
         let download = Alamofire.download(urlString)
         let download = Alamofire.download(urlString)
         download.downloadProgress { progress in
         download.downloadProgress { progress in
-            if progress.fractionCompleted > 0.1 { download.cancel() }
+            guard !cancelled else { return }
+
+            if progress.fractionCompleted > 0.1 {
+                download.cancel()
+                cancelled = true
+            }
         }
         }
         download.response { resp in
         download.response { resp in
             response = resp
             response = resp
@@ -405,27 +412,30 @@ class DownloadResumeDataTestCase: BaseTestCase {
         XCTAssertNotNil(response?.request)
         XCTAssertNotNil(response?.request)
         XCTAssertNotNil(response?.response)
         XCTAssertNotNil(response?.response)
         XCTAssertNil(response?.destinationURL)
         XCTAssertNil(response?.destinationURL)
-        XCTAssertNotNil(response?.resumeData)
         XCTAssertNotNil(response?.error)
         XCTAssertNotNil(response?.error)
 
 
+        XCTAssertNotNil(response?.resumeData)
         XCTAssertNotNil(download.resumeData)
         XCTAssertNotNil(download.resumeData)
 
 
-        if let responseResumeData = response?.resumeData, let resumeData = download.resumeData {
-            XCTAssertEqual(responseResumeData, resumeData)
-        } else {
-            XCTFail("response resume data or resume data was unexpectedly nil")
-        }
+        XCTAssertEqual(response?.resumeData, download.resumeData)
     }
     }
 
 
     func testThatCancelledDownloadResumeDataIsAvailableWithJSONResponseSerializer() {
     func testThatCancelledDownloadResumeDataIsAvailableWithJSONResponseSerializer() {
         // Given
         // Given
         let expectation = self.expectation(description: "Download should be cancelled")
         let expectation = self.expectation(description: "Download should be cancelled")
+        var cancelled = false
+
         var response: DownloadResponse<Any>?
         var response: DownloadResponse<Any>?
 
 
         // When
         // When
         let download = Alamofire.download(urlString)
         let download = Alamofire.download(urlString)
         download.downloadProgress { progress in
         download.downloadProgress { progress in
-            if progress.fractionCompleted > 0.1 { download.cancel() }
+            guard !cancelled else { return }
+
+            if progress.fractionCompleted > 0.1 {
+                download.cancel()
+                cancelled = true
+            }
         }
         }
         download.responseJSON { resp in
         download.responseJSON { resp in
             response = resp
             response = resp
@@ -438,10 +448,12 @@ class DownloadResumeDataTestCase: BaseTestCase {
         XCTAssertNotNil(response?.request)
         XCTAssertNotNil(response?.request)
         XCTAssertNotNil(response?.response)
         XCTAssertNotNil(response?.response)
         XCTAssertNil(response?.destinationURL)
         XCTAssertNil(response?.destinationURL)
-        XCTAssertNotNil(response?.resumeData)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertEqual(response?.result.isFailure, true)
         XCTAssertNotNil(response?.result.error)
         XCTAssertNotNil(response?.result.error)
 
 
+        XCTAssertNotNil(response?.resumeData)
         XCTAssertNotNil(download.resumeData)
         XCTAssertNotNil(download.resumeData)
+
+        XCTAssertEqual(response?.resumeData, download.resumeData)
     }
     }
 }
 }