Skip to content

Instantly share code, notes, and snippets.

@archieedwards
Last active July 1, 2020 10:24
Show Gist options
  • Save archieedwards/813c4abbe700820697c5d0a86fa0b98c to your computer and use it in GitHub Desktop.
Save archieedwards/813c4abbe700820697c5d0a86fa0b98c to your computer and use it in GitHub Desktop.
func testExecuteRequest_failure_noData() throws {
/// create mock to return nil
class NetworkMock : NetworkClientProtocol{
func executeRequest(request: URLRequest, completion: @escaping (Data?, Error?) -> Void) {
completion(nil, nil)
}
}
/// inject mock and execute request
var networkResultOptional : Result<Data, Error>?
let client = NetworkClient(p: NetworkMock())
client.executeRequest(request: URLRequest.station(station: Station(id: "BHM"))){ result in
networkResultOptional = result
}
/// assert
guard let networkResult = networkResultOptional else {
return XCTFail("NetworkClient Result is nil")
}
switch networkResult{
case .success(let data):
return XCTFail("NetworkClient was meant to fail with a noData error but returned success with data \(data)")
case .failure(let error):
XCTAssertEqual(error.localizedDescription, NetworkError.noData.localizedDescription)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment