Emcee

Форк
0
/
TestNameTests.swift 
61 строка · 1.6 Кб
1
import CommonTestModels
2
import Foundation
3
import XCTest
4

5
final class TestNameTests: XCTestCase {
6
    let value = ["value": TestName(className: "ClassName", methodName: "testMethod")]
7
    let encoder = JSONEncoder()
8
    
9
    func test___decoding_from_string() throws {
10
        let result: [String: TestName] = try fromJson(
11
            string: "{\"value\":\"ClassName\\/testMethod\"}"
12
        )
13

14
        XCTAssertEqual(value, result)
15
    }
16

17
    func test___decoding_from_string_with_fields() throws {
18
        let result = try encoder.encode(value)
19
        
20
        let expectedValue = try fromJson(
21
            string: """
22
            {
23
                "value": {
24
                    "className": "ClassName",
25
                    "methodName": "testMethod"
26
                }
27
            }
28
            """
29
        )
30

31
        XCTAssertEqual(
32
            String(data: result, encoding: .utf8)!,
33
            String(data: try encoder.encode(expectedValue), encoding: .utf8)!
34
        )
35
    }
36
    
37
    func test___encoding_to_string() throws {
38
        let result = try encoder.encode(value)
39
        
40
        let expectedValue = """
41
        {
42
            "value": {
43
                "className": "ClassName",
44
                "methodName": "testMethod"
45
            }
46
        }
47
        """.components(separatedBy: .whitespacesAndNewlines).joined()
48
        
49
        XCTAssertEqual(
50
            result,
51
            Data(expectedValue.utf8)
52
        )
53
    }
54
    
55
    private func fromJson(string: String) throws -> [String : TestName] {
56
        return try JSONDecoder().decode(
57
            [String: TestName].self,
58
            from: Data(string.utf8)
59
        )
60
    }
61
}
62

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.