From 8db347cfeb5bb20d94b2f9c5fda6b9760cf8dbf4 Mon Sep 17 00:00:00 2001 From: Edwin Vermeer Date: Fri, 18 Nov 2016 10:15:23 +0100 Subject: [PATCH 1/2] easy access to simple content or a file --- Mockingjay/Builders.swift | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Mockingjay/Builders.swift b/Mockingjay/Builders.swift index d390a9b..8732ade 100644 --- a/Mockingjay/Builders.swift +++ b/Mockingjay/Builders.swift @@ -46,3 +46,26 @@ public func jsonData(_ data: Data, status: Int = 200, headers: [String:String]? return http(status, headers: headers, download: .content(data))(request) } } + +public func content(_ body: String, status: Int = 200, headers: [String:String]? = nil) -> (_ request: URLRequest) -> Response { + return { (request: URLRequest) in + var headers = headers ?? [String:String]() + if headers["Content-Type"] == nil { + headers["Content-Type"] = "text/plain; charset=utf-8" + } + let data: Data = body.data(using: String.Encoding.utf8) ?? Data() + return http(status, headers: headers, download: Download.content(data as Data))(request) + } +} + +public func file(_ file: String, _ type: String = "json", status: Int = 200, headers: [String:String]? = nil) -> (_ request: URLRequest) -> Response { + return { (request: URLRequest) in + let response = HTTPURLResponse(url: request.url!, statusCode: 200, httpVersion: nil, headerFields: nil)! + if let path = Bundle.main.path(forResource: file, ofType: type) { + if let data = NSData(contentsOfFile: path) { + return content(String(data: data as Data, encoding: .utf8), status: status, headers: headers)(request) + } + } + return .failure(NSError()) + } +} From 6efca06fbdf1e0795bc24cfaa78835efb67354de Mon Sep 17 00:00:00 2001 From: Edwin Vermeer Date: Fri, 18 Nov 2016 10:28:48 +0100 Subject: [PATCH 2/2] Update Builders.swift --- Mockingjay/Builders.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mockingjay/Builders.swift b/Mockingjay/Builders.swift index 8732ade..880a7b0 100644 --- a/Mockingjay/Builders.swift +++ b/Mockingjay/Builders.swift @@ -63,7 +63,7 @@ public func file(_ file: String, _ type: String = "json", status: Int = 200, hea let response = HTTPURLResponse(url: request.url!, statusCode: 200, httpVersion: nil, headerFields: nil)! if let path = Bundle.main.path(forResource: file, ofType: type) { if let data = NSData(contentsOfFile: path) { - return content(String(data: data as Data, encoding: .utf8), status: status, headers: headers)(request) + return content(String(data: data as Data, encoding: .utf8) ?? "", status: status, headers: headers)(request) } } return .failure(NSError())