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