in source/UberCoreTests/RefreshEndpointTests.swift [54:99]
func test200Response() {
stub(condition: isHost("auth.uber.com")) { _ in
return HTTPStubsResponse(fileAtPath:OHPathForFile("refresh.json", type(of: self))!, statusCode:200, headers:self.headers)
}
let refreshToken = "ThisIsRefresh"
let expectation = self.expectation(description: "200 success response")
let endpoint = OAuth.refresh(clientID: clientID, refreshToken: refreshToken)
guard let request = Request(session: session, endpoint: endpoint) else {
XCTFail("unable to create request")
return
}
request.execute({ response in
XCTAssertEqual(response.statusCode, 200)
XCTAssertNil(response.error)
expectation.fulfill()
})
XCTAssertEqual(request.urlRequest.httpMethod, "POST")
guard let bodyData = request.urlRequest.httpBody, let dataString = String(data: bodyData, encoding: String.Encoding.utf8) else {
XCTFail("Missing HTTP Body!")
return
}
var components = URLComponents()
components.query = dataString
let expectedClientID = URLQueryItem(name: "client_id", value: clientID)
let expectedRefreshToken = URLQueryItem(name: "refresh_token", value: refreshToken)
guard let queryItems = components.queryItems else {
XCTFail("Invalid HTTP Body!")
return
}
XCTAssertTrue(queryItems.contains(expectedClientID))
XCTAssertTrue(queryItems.contains(expectedRefreshToken))
waitForExpectations(timeout: timeout, handler: { error in
if let error = error {
print("Error: \(error.localizedDescription)")
}
request.cancelTasks()
})
}