Emcee

Форк
0
/
ContextualLoggerTests.swift 
84 строки · 2.3 Кб
1
import DateProviderTestHelpers
2
import EmceeLogging
3
import EmceeLoggingModels
4
import EmceeLoggingTestHelpers
5
import Foundation
6
import QueueModels
7
import TestHelpers
8
import XCTest
9

10
final class ContextualLoggerTests: XCTestCase {
11
    lazy var dateProvider = DateProviderFixture()
12
    lazy var loggerHandler = FakeLoggerHandle()
13
    lazy var logger = ContextualLogger(
14
        dateProvider: dateProvider,
15
        loggerHandler: loggerHandler,
16
        metadata: [:]
17
    )
18
    
19
    func test___basic_logging() {
20
        logger.debug("hello", file: "file", line: 42)
21
        
22
        assert {
23
            loggerHandler.logEntries
24
        } equals: {
25
            [
26
                LogEntry(
27
                    file: "file",
28
                    line: 42,
29
                    coordinates: [],
30
                    message: "hello",
31
                    timestamp: dateProvider.currentDate(),
32
                    verbosity: .debug
33
                )
34
            ]
35
        }
36
    }
37
    
38
    func test___chained_logger_with_metadata() {
39
        logger
40
            .withMetadata(key: "new", value: "metadata")
41
            .debug("hello", file: "file", line: 42)
42
        
43
        assert {
44
            loggerHandler.logEntries
45
        } equals: {
46
            [
47
                LogEntry(
48
                    file: "file",
49
                    line: 42,
50
                    coordinates: [
51
                        LogEntryCoordinate(name: "new", value: "metadata"),
52
                    ],
53
                    message: "hello",
54
                    timestamp: dateProvider.currentDate(),
55
                    verbosity: .debug
56
                )
57
            ]
58
        }
59
    }
60
    
61
    func test___chained_logger_with_overriden_metadata() {
62
        let logger = logger
63
            .withMetadata(key: .workerId, value: "oldValue")
64
            
65
        logger.debug("hello", workerId: "newValue", file: "file", line: 42)
66
        
67
        assert {
68
            loggerHandler.logEntries
69
        } equals: {
70
            [
71
                LogEntry(
72
                    file: "file",
73
                    line: 42,
74
                    coordinates: [
75
                        LogEntryCoordinate(name: "workerId", value: "newValue"),
76
                    ],
77
                    message: "hello",
78
                    timestamp: dateProvider.currentDate(),
79
                    verbosity: .debug
80
                )
81
            ]
82
        }
83
    }
84
}
85

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

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

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

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