Last active
July 1, 2020 10:24
-
-
Save archieedwards/813c4abbe700820697c5d0a86fa0b98c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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