@@ -539,6 +539,18 @@ class LoggerTests: XCTestCase {
539
539
XCTAssertTrue ( sonIsAsynchronous)
540
540
}
541
541
542
+ func testLoggerWithParentUsesParentTimeProvider( ) {
543
+ let parentLogger = Logger ( identifier: " parent.logger " , level: . Info, appenders: [ MemoryAppender ( ) ] )
544
+ let sonLogger = Logger ( parentLogger: parentLogger, identifier: " son.logger " )
545
+
546
+ // Execute
547
+ let testDate = Date ( timeIntervalSince1970: 42 )
548
+ parentLogger. timeProvider = { return testDate }
549
+
550
+ // Validate
551
+ XCTAssertEqual ( sonLogger. timeProvider ( ) , testDate)
552
+ }
553
+
542
554
func testChangingSonLoggerParameterBreakLinkWithParent( ) {
543
555
let parentLogger = Logger ( identifier: " parent.logger " , level: . Info, appenders: [ MemoryAppender ( ) ] )
544
556
let sonLogger = Logger ( parentLogger: parentLogger, identifier: " son.logger " )
@@ -565,7 +577,6 @@ class LoggerTests: XCTestCase {
565
577
XCTAssertNil ( sonLogger. parent)
566
578
}
567
579
568
-
569
580
func testSettingSonLoggerAsyncStatusBreakLinkWithParent( ) {
570
581
let parentLogger = Logger ( identifier: " parent.logger " , level: . Info, appenders: [ MemoryAppender ( ) ] )
571
582
let sonLogger = Logger ( parentLogger: parentLogger, identifier: " son.logger " )
@@ -579,6 +590,24 @@ class LoggerTests: XCTestCase {
579
590
XCTAssertFalse ( parentLogger. asynchronous)
580
591
XCTAssertTrue ( sonLogger. asynchronous)
581
592
}
593
+
594
+ func testSettingSonLoggerTimeProviderBreakLinkWithParent( ) {
595
+ let parentLogger = Logger ( identifier: " parent.logger " , level: . Info, appenders: [ MemoryAppender ( ) ] )
596
+ let sonLogger = Logger ( parentLogger: parentLogger, identifier: " son.logger " )
597
+ let testDate = (
598
+ Date ( timeIntervalSince1970: 42 ) ,
599
+ Date ( timeIntervalSince1970: 13 )
600
+ )
601
+ parentLogger. timeProvider = { return testDate. 0 }
602
+
603
+ // Execute
604
+ sonLogger. timeProvider = { return testDate. 1 }
605
+
606
+ // Validate
607
+ XCTAssertNil ( sonLogger. parent)
608
+ XCTAssertEqual ( parentLogger. timeProvider ( ) , testDate. 0 )
609
+ XCTAssertEqual ( sonLogger. timeProvider ( ) , testDate. 1 )
610
+ }
582
611
583
612
func testLoggedTimeIsTakenWhenLogIsRequested( ) {
584
613
let formatter = try ! PatternFormatter ( identifier: " testFormatter " , pattern: " %d{'format':'%s'} " )
@@ -599,7 +628,22 @@ class LoggerTests: XCTestCase {
599
628
}
600
629
}
601
630
602
-
631
+ func testLoggedProvidedTime( ) {
632
+ let formatter = try ! PatternFormatter ( identifier: " testFormatter " , pattern: " %D{'format':'ss.SSS'} " )
633
+ let appender = MemoryAppender ( )
634
+ appender. thresholdLevel = . Debug
635
+ appender. formatter = formatter
636
+ let logger = Logger ( identifier: " test.identifier " , level: . Debug, appenders: [ appender] )
637
+
638
+ logger. timeProvider = { Date ( timeIntervalSince1970: 42.147 ) }
639
+
640
+ // Execute
641
+ logger. debug ( " This is a debug message " )
642
+
643
+ // Validate
644
+ XCTAssertEqual ( appender. logMessages [ 0 ] . message, " 42.147 " )
645
+ }
646
+
603
647
func testLoggingStringWithPercentAndNoParametersDoesNotCrash( ) {
604
648
let appender = MemoryAppender ( )
605
649
appender. thresholdLevel = . Debug
0 commit comments