Emcee
61 строка · 1.6 Кб
1import CommonTestModels
2import Foundation
3import XCTest
4
5final class TestNameTests: XCTestCase {
6let value = ["value": TestName(className: "ClassName", methodName: "testMethod")]
7let encoder = JSONEncoder()
8
9func test___decoding_from_string() throws {
10let result: [String: TestName] = try fromJson(
11string: "{\"value\":\"ClassName\\/testMethod\"}"
12)
13
14XCTAssertEqual(value, result)
15}
16
17func test___decoding_from_string_with_fields() throws {
18let result = try encoder.encode(value)
19
20let expectedValue = try fromJson(
21string: """
22{
23"value": {
24"className": "ClassName",
25"methodName": "testMethod"
26}
27}
28"""
29)
30
31XCTAssertEqual(
32String(data: result, encoding: .utf8)!,
33String(data: try encoder.encode(expectedValue), encoding: .utf8)!
34)
35}
36
37func test___encoding_to_string() throws {
38let result = try encoder.encode(value)
39
40let expectedValue = """
41{
42"value": {
43"className": "ClassName",
44"methodName": "testMethod"
45}
46}
47""".components(separatedBy: .whitespacesAndNewlines).joined()
48
49XCTAssertEqual(
50result,
51Data(expectedValue.utf8)
52)
53}
54
55private func fromJson(string: String) throws -> [String : TestName] {
56return try JSONDecoder().decode(
57[String: TestName].self,
58from: Data(string.utf8)
59)
60}
61}
62