Skip to content

Instantly share code, notes, and snippets.

@stevencurtis
Created July 14, 2020 17:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevencurtis/5db455c3a19f1e08e460015a1e8ece6c to your computer and use it in GitHub Desktop.
Save stevencurtis/5db455c3a19f1e08e460015a1e8ece6c to your computer and use it in GitHub Desktop.
urlsessionmock
class URLSessionMock: URLSessionProtocol {
var jsonName = "RegisterSuccess.json"
func response(for request: URLRequest) -> AnyPublisher<APIResponse, URLError> {
let response = HTTPURLResponse(url: request.url!, statusCode: 200, httpVersion: "HTTP/1.1", headerFields: nil)!
let file = Bundle(for: type(of: self)).path(forResource: jsonName, ofType: nil)!
let url = URL(fileURLWithPath: file)
guard let data = try? Data(contentsOf: url) else {
fatalError()
}
return Just((data: data, response: response))
.setFailureType(to: URLError.self)
.eraseToAnyPublisher()
}
typealias CompletionHandler = (Data?, URLResponse?, Error?) -> Void
// data and error can be set to provide data or an error
var data: Data?
var error: Error?
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment