@@ -7,6 +7,15 @@ import XCTest
77@testable import IterableSDK
88
99class LoggingTests : XCTestCase {
10+ private class SpyDateProvider : DateProviderProtocol {
11+ private( set) var currentDateAccessCount = 0
12+
13+ var currentDate : Date {
14+ currentDateAccessCount += 1
15+ return Date ( timeIntervalSince1970: 0 )
16+ }
17+ }
18+
1019 func testLogging( ) {
1120 let expectation1 = expectation ( description: " debug message " )
1221 let expectation2 = expectation ( description: " info message " )
@@ -48,4 +57,24 @@ class LoggingTests: XCTestCase {
4857
4958 wait ( for: [ expectation1, expectation2, expectation3] , timeout: 10.0 )
5059 }
60+
61+ func testDefaultLogDelegateDoesNotFormatFilteredLogLevel( ) {
62+ let dateProvider = SpyDateProvider ( )
63+ let logUtil = IterableLogUtil ( dateProvider: dateProvider, logDelegate: DefaultLogDelegate ( minLogLevel: . error) )
64+
65+ logUtil. log ( level: . info, message: " filtered " , file: #file, method: #function, line: #line)
66+ XCTAssertEqual ( dateProvider. currentDateAccessCount, 0 )
67+
68+ logUtil. log ( level: . error, message: " logged " , file: #file, method: #function, line: #line)
69+ XCTAssertEqual ( dateProvider. currentDateAccessCount, 1 )
70+ }
71+
72+ func testNoneLogDelegateDoesNotFormatMessages( ) {
73+ let dateProvider = SpyDateProvider ( )
74+ let logUtil = IterableLogUtil ( dateProvider: dateProvider, logDelegate: NoneLogDelegate ( ) )
75+
76+ logUtil. log ( level: . error, message: " filtered " , file: #file, method: #function, line: #line)
77+
78+ XCTAssertEqual ( dateProvider. currentDateAccessCount, 0 )
79+ }
5180}
0 commit comments