| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- //
- // SwifterTestsHttpResponseBody.swift
- // Swifter
- //
- import XCTest
- @testable import Swifter
- class SwifterTestsHttpResponseBody: XCTestCase {
-
- func testDictionaryAsJSONPayload() {
- verify(input: ["key": "value"], output: "{\"key\":\"value\"}")
- verify(input: ["key": ["value1", "value2", "value3"]], output: "{\"key\":[\"value1\",\"value2\",\"value3\"]}")
- }
-
- func testArrayAsJSONPayload() {
- verify(input: ["key", "value"], output: "[\"key\",\"value\"]")
- verify(input: ["value1", "value2", "value3"], output: "[\"value1\",\"value2\",\"value3\"]")
- }
-
- func testNSDictionaryAsJSONPayload() {
- verify(input: ["key": "value"] as NSDictionary, output: "{\"key\":\"value\"}")
- verify(input: ["key": ["value1", "value2", "value3"]] as NSDictionary, output: "{\"key\":[\"value1\",\"value2\",\"value3\"]}")
- }
-
- func testNSArrayAsJSONPayload() {
- verify(input: ["key", "value"] as NSArray, output: "[\"key\",\"value\"]")
- verify(input: ["value1", "value2", "value3"] as NSArray, output: "[\"value1\",\"value2\",\"value3\"]")
- }
-
- private func verify(input: Any, output expectedOutput: String, line: UInt = #line) {
- let response: HttpResponseBody = .json(input)
-
- guard let writer = response.content().1 else {
- XCTFail(line: line)
- return
- }
-
- do {
- let mockWriter = MockWriter()
- try writer(mockWriter)
- let output = String(decoding: mockWriter.data, as: UTF8.self)
- XCTAssertEqual(output, expectedOutput, line: line)
- } catch {
- XCTFail(line: line)
- }
- }
- }
- private class MockWriter: HttpResponseBodyWriter {
- var data = Data()
-
- func write(_ file: String.File) throws { }
- func write(_ data: [UInt8]) throws { }
- func write(_ data: ArraySlice<UInt8>) throws { }
- func write(_ data: NSData) throws { }
- func write(_ data: Data) throws { self.data = data }
- }
|