Merge pull request #361 from mas-cli/clean

♻️ Remove unused test helpers
This commit is contained in:
Ben Chatelain 2021-05-06 20:52:48 -06:00 committed by GitHub
commit c88a98892e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 1 additions and 124 deletions

View file

@ -19,21 +19,6 @@ class NetworkSessionMock: NetworkSession {
var data: Data? var data: Data?
var error: Error? var error: Error?
/// Creates a mock data task
///
/// - Parameters:
/// - url: unused
/// - completionHandler: Closure which is delivered both data and error properties (only one should be non-nil)
/// - Returns: Mock data task
func dataTask(with _: URL, completionHandler: @escaping CompletionHandler) -> URLSessionDataTask {
let data = self.data
let error = self.error
return URLSessionDataTaskMock {
completionHandler(data, nil, error)
}
}
/// Immediately passes data and error to completion handler. /// Immediately passes data and error to completion handler.
/// ///
/// - Parameters: /// - Parameters:

View file

@ -1,41 +0,0 @@
//
// TestURLSessionDelegate.swift
// MasKitTests
//
// Created by Ben Chatelain on 1/5/19.
// Copyright © 2019 mas-cli. All rights reserved.
//
import Foundation
/// Delegate for network requests initiated from tests.
class TestURLSessionDelegate: NSObject, URLSessionDelegate {
func urlSession(
_: URLSession,
didReceive challenge: URLAuthenticationChallenge,
completionHandler: (
URLSession.AuthChallengeDisposition,
URLCredential?
) -> Void
) {
// For example, you may want to override this to accept some self-signed certs here.
let methodIsServerTrust = challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust
if methodIsServerTrust, Constants.selfSignedHosts.contains(challenge.protectionSpace.host) {
// Allow the self-signed cert.
let credential = URLCredential(trust: challenge.protectionSpace.serverTrust!)
completionHandler(.useCredential, credential)
} else {
// You *have* to call completionHandler, so call
// it to do the default action.
completionHandler(.performDefaultHandling, nil)
}
}
enum Constants {
// A list of hosts you allow self-signed certificates on.
// You'd likely have your dev/test servers here.
// Please don't put your production server here!
static let selfSignedHosts: Set<String> =
["dev.example.com", "test.example.com"]
}
}

View file

@ -1,31 +0,0 @@
//
// URLSessionConfiguration+Test.swift
// MasKitTests
//
// Created by Ben Chatelain on 1/5/19.
// Copyright © 2019 mas-cli. All rights reserved.
//
import Foundation
/// Configuration for network requests initiated from tests.
extension URLSessionConfiguration {
/// Just like defaultSessionConfiguration, returns a
/// newly created session configuration object, customised
/// from the default to your requirements.
class func testSessionConfiguration() -> URLSessionConfiguration {
let config = `default`
// Eg we think 60s is too long a timeout time.
config.timeoutIntervalForRequest = 20
// Some headers that are common to all reqeuests.
// Eg my backend needs to be explicitly asked for JSON.
config.httpAdditionalHeaders = ["MyResponseType": "JSON"]
// Eg we want to use pipelining.
config.httpShouldUsePipelining = true
return config
}
}

View file

@ -1,24 +0,0 @@
//
// URLSessionDataTaskMock .swift
// MasKitTests
//
// Created by Ben Chatelain on 1/5/19.
// Copyright © 2019 mas-cli. All rights reserved.
//
import Foundation
// Partial mock subclassing the original class
class URLSessionDataTaskMock: URLSessionDataTask {
private let closure: () -> Void
init(closure: @escaping () -> Void) {
self.closure = closure
}
// We override the 'resume' method and simply call our closure
// instead of actually resuming any task.
override func resume() {
closure()
}
}

View file

@ -8,19 +8,7 @@
// https://medium.com/@merowing_/stop-weak-strong-dance-in-swift-3aec6d3563d4 // https://medium.com/@merowing_/stop-weak-strong-dance-in-swift-3aec6d3563d4
func strongify<Context: AnyObject, Arguments>( func strongify<Context: AnyObject>(_ context: Context?, closure: (Context) -> Void) {
_ context: Context?,
closure: @escaping (Context, Arguments) -> Void
) -> (Arguments) -> Void {
let strongified = { [weak context] (arguments: Arguments) in
guard let strongContext = context else { return }
closure(strongContext, arguments)
}
return strongified
}
func strongify<Context: AnyObject>(_ context: Context?, closure: @escaping (Context) -> Void) {
guard let strongContext = context else { return } guard let strongContext = context else { return }
closure(strongContext) closure(strongContext)
} }