|
|
@@ -76,6 +76,104 @@ class RequestInitializationTestCase: BaseTestCase {
|
|
|
|
|
|
// MARK: -
|
|
|
|
|
|
+class RequestSubclassRequestPropertyTestCase: BaseTestCase {
|
|
|
+ private enum AuthenticationError: Error {
|
|
|
+ case expiredAccessToken
|
|
|
+ }
|
|
|
+
|
|
|
+ private class AuthenticationAdapter: RequestAdapter {
|
|
|
+ func adapt(_ urlRequest: URLRequest) throws -> URLRequest {
|
|
|
+ throw AuthenticationError.expiredAccessToken
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private var sessionManager: SessionManager!
|
|
|
+
|
|
|
+ override func setUp() {
|
|
|
+ super.setUp()
|
|
|
+
|
|
|
+ sessionManager = SessionManager()
|
|
|
+ sessionManager.startRequestsImmediately = false
|
|
|
+
|
|
|
+ sessionManager.adapter = AuthenticationAdapter()
|
|
|
+ }
|
|
|
+
|
|
|
+ func testDataRequestHasURLRequest() {
|
|
|
+ // Given
|
|
|
+ let urlString = "https://httpbin.org/"
|
|
|
+
|
|
|
+ // When
|
|
|
+ let request = sessionManager.request(urlString)
|
|
|
+
|
|
|
+ // Then
|
|
|
+ XCTAssertNotNil(request.request)
|
|
|
+ XCTAssertEqual(request.request?.httpMethod, "GET")
|
|
|
+ XCTAssertEqual(request.request?.url?.absoluteString, urlString)
|
|
|
+ XCTAssertNil(request.response)
|
|
|
+ }
|
|
|
+
|
|
|
+ func testDownloadRequestHasURLRequest() {
|
|
|
+ // Given
|
|
|
+ let urlString = "https://httpbin.org/"
|
|
|
+
|
|
|
+ // When
|
|
|
+ let request = sessionManager.download(urlString)
|
|
|
+
|
|
|
+ // Then
|
|
|
+ XCTAssertNotNil(request.request)
|
|
|
+ XCTAssertEqual(request.request?.httpMethod, "GET")
|
|
|
+ XCTAssertEqual(request.request?.url?.absoluteString, urlString)
|
|
|
+ XCTAssertNil(request.response)
|
|
|
+ }
|
|
|
+
|
|
|
+ func testUploadDataRequestHasURLRequest() {
|
|
|
+ // Given
|
|
|
+ let urlString = "https://httpbin.org/"
|
|
|
+
|
|
|
+ // When
|
|
|
+ let request = sessionManager.upload(Data(), to: urlString)
|
|
|
+
|
|
|
+ // Then
|
|
|
+ XCTAssertNotNil(request.request)
|
|
|
+ XCTAssertEqual(request.request?.httpMethod, "POST")
|
|
|
+ XCTAssertEqual(request.request?.url?.absoluteString, urlString)
|
|
|
+ XCTAssertNil(request.response)
|
|
|
+ }
|
|
|
+
|
|
|
+ func testUploadFileRequestHasURLRequest() {
|
|
|
+ // Given
|
|
|
+ let urlString = "https://httpbin.org/"
|
|
|
+ let imageURL = url(forResource: "rainbow", withExtension: "jpg")
|
|
|
+
|
|
|
+ // When
|
|
|
+ let request = sessionManager.upload(imageURL, to: urlString)
|
|
|
+
|
|
|
+ // Then
|
|
|
+ XCTAssertNotNil(request.request)
|
|
|
+ XCTAssertEqual(request.request?.httpMethod, "POST")
|
|
|
+ XCTAssertEqual(request.request?.url?.absoluteString, urlString)
|
|
|
+ XCTAssertNil(request.response)
|
|
|
+ }
|
|
|
+
|
|
|
+ func testUploadStreamRequestHasURLRequest() {
|
|
|
+ // Given
|
|
|
+ let urlString = "https://httpbin.org/"
|
|
|
+ let imageURL = url(forResource: "rainbow", withExtension: "jpg")
|
|
|
+ let imageStream = InputStream(url: imageURL)!
|
|
|
+
|
|
|
+ // When
|
|
|
+ let request = sessionManager.upload(imageStream, to: urlString)
|
|
|
+
|
|
|
+ // Then
|
|
|
+ XCTAssertNotNil(request.request)
|
|
|
+ XCTAssertEqual(request.request?.httpMethod, "POST")
|
|
|
+ XCTAssertEqual(request.request?.url?.absoluteString, urlString)
|
|
|
+ XCTAssertNil(request.response)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// MARK: -
|
|
|
+
|
|
|
class RequestResponseTestCase: BaseTestCase {
|
|
|
func testRequestResponse() {
|
|
|
// Given
|