mirror of
https://github.com/bitwarden/ios.git
synced 2025-12-12 07:43:01 -06:00
59 lines
1.2 KiB
Swift
59 lines
1.2 KiB
Swift
import Foundation
|
|
|
|
@testable import Networking
|
|
|
|
struct TestRequest: Request {
|
|
typealias Response = TestResponse
|
|
let path = "/test"
|
|
|
|
func validate(_ response: HTTPResponse) throws {
|
|
switch response.statusCode {
|
|
case 400:
|
|
throw TestError.invalidResponse
|
|
default:
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
struct TestResponse: Response {
|
|
let httpResponse: HTTPResponse
|
|
init(response: HTTPResponse) throws {
|
|
httpResponse = response
|
|
}
|
|
}
|
|
|
|
struct TestJSONRequest: Request {
|
|
typealias Response = TestJSONResponse
|
|
let path = "/test.json"
|
|
}
|
|
|
|
struct TestJSONResponse: JSONResponse {
|
|
static var decoder: JSONDecoder { JSONDecoder() }
|
|
|
|
var field: String
|
|
}
|
|
|
|
struct TestValidatingRequest: Request {
|
|
typealias Response = TestResponse
|
|
let path = "/test"
|
|
|
|
func validate(_ response: HTTPResponse) throws -> Result<HTTPResponse, Error> {
|
|
throw TestError.badResponse
|
|
}
|
|
}
|
|
|
|
struct TestJSONRequestBody: JSONRequestBody {
|
|
static var encoder: JSONEncoder { JSONEncoder() }
|
|
|
|
let field: String
|
|
}
|
|
|
|
struct TestJSONBodyRequest: Request {
|
|
typealias Response = TestResponse
|
|
typealias Body = TestJSONRequestBody
|
|
let path = "/test"
|
|
|
|
var body: TestJSONRequestBody?
|
|
}
|