mirror of
https://github.com/mas-cli/mas
synced 2024-11-25 21:10:24 +00:00
43 lines
1.3 KiB
Swift
43 lines
1.3 KiB
Swift
//
|
|
// NetworkSessionMock
|
|
// MasKitTests
|
|
//
|
|
// Created by Ben Chatelain on 11/13/18.
|
|
// Copyright © 2018 mas-cli. All rights reserved.
|
|
//
|
|
|
|
import MasKit
|
|
|
|
/// Mock NetworkSession for testing.
|
|
class NetworkSessionMock: NetworkSession {
|
|
typealias CompletionHandler = (Data?, URLResponse?, Error?) -> Void
|
|
|
|
// Properties that enable us to set exactly what data or error
|
|
// we want our mocked URLSession to return for any request.
|
|
var data: Data?
|
|
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: 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.
|
|
///
|
|
/// - Parameters:
|
|
/// - url: unused
|
|
/// - completionHandler: Closure which is delivered either data or an error.
|
|
@objc func loadData(from url: URL, completionHandler: @escaping (Data?, Error?) -> Void) {
|
|
completionHandler(data, error)
|
|
}
|
|
}
|