@@ -42,7 +42,7 @@ public void Log_is_noop_when_not_enabled()
42
42
// ARRANGE
43
43
var logger = new LogDisplayLogger ( "Test" )
44
44
{
45
- RecordLine = Mock . Of < Action < string , string [ ] > > ( MockBehavior . Strict ) ,
45
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( MockBehavior . Strict ) ,
46
46
} ;
47
47
48
48
// ACT
@@ -55,7 +55,7 @@ public void Log_is_noop_when_message_is_empty()
55
55
// ARRANGE
56
56
var logger = new LogDisplayLogger ( "Test" )
57
57
{
58
- RecordLine = Mock . Of < Action < string , string [ ] > > ( MockBehavior . Strict ) ,
58
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( MockBehavior . Strict ) ,
59
59
} ;
60
60
61
61
// ACT
@@ -68,7 +68,7 @@ public void Log_throws_when_formatter_is_null()
68
68
// ARRANGE
69
69
var logger = new LogDisplayLogger ( "Test" )
70
70
{
71
- RecordLine = Mock . Of < Action < string , string [ ] > > ( MockBehavior . Strict ) ,
71
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( MockBehavior . Strict ) ,
72
72
} ;
73
73
74
74
// ACT & ASSERT
@@ -79,34 +79,96 @@ public void Log_throws_when_formatter_is_null()
79
79
public void Log_includes_exception ( )
80
80
{
81
81
// ARRANGE
82
- var logger = new LogDisplayLogger ( "Test" )
82
+ var logger = new LogDisplayLogger ( "Test" , new LogDisplayLoggerOptions
83
+ {
84
+ TimestampFormat = "G" ,
85
+ } )
83
86
{
84
- RecordLine = Mock . Of < Action < string , string [ ] > > ( ) ,
87
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( ) ,
85
88
} ;
86
89
87
90
// ACT
88
- logger . Log ( LogLevel . Information , new Exception ( "TestException" ) , "TestMessage" ) ;
91
+ logger . Log ( LogLevel . Debug , new Exception ( "TestException" ) , "TestMessage" ) ;
89
92
90
93
// ASSERT
91
94
Mock . Get ( logger . RecordLine ) . Verify ( invoke => invoke (
92
95
It . Is < string > ( s => s . Contains ( "TestMessage" ) && s . Contains ( "TestException" ) ) ,
93
- It . Is < string [ ] > ( p => p . Length == 0 ) ) , Times . Once ) ;
96
+ It . Is < object [ ] > ( p => p . Length == 0 ) ) , Times . Once ) ;
94
97
}
95
98
96
99
[ Fact ]
97
- public void Log_auto_shows_LogDisplay ( )
100
+ public void Log_includes_timestamp ( )
101
+ {
102
+ // ARRANGE
103
+ var logger = new LogDisplayLogger ( "Test" , new LogDisplayLoggerOptions
104
+ {
105
+ TimestampFormat = "yyyy-MM-dd HH:mm:ss " ,
106
+ } )
107
+ {
108
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( ) ,
109
+ GetCurrentTimestamp = ( ) => new DateTimeOffset ( 2023 , 04 , 17 , 13 , 34 , 00 , TimeSpan . Zero ) ,
110
+ } ;
111
+
112
+ // ACT
113
+ logger . Log ( LogLevel . Trace , new Exception ( "TestException" ) , "TestMessage" ) ;
114
+
115
+ // ASSERT
116
+ Mock . Get ( logger . RecordLine ) . Verify ( invoke => invoke (
117
+ It . Is < string > ( s => s . Contains ( "2023-04-17 13:34:00" ) ) ,
118
+ It . Is < object [ ] > ( p => p . Length == 0 ) ) , Times . Once ) ;
119
+ }
120
+
121
+
122
+ [ Theory ]
123
+ [ InlineData ( LogLevel . Error ) ]
124
+ [ InlineData ( LogLevel . Critical ) ]
125
+ public void Log_auto_shows_LogDisplay ( LogLevel level )
98
126
{
99
127
// ARRANGE
100
128
var logger = new LogDisplayLogger ( "Test" )
101
129
{
102
- RecordLine = Mock . Of < Action < string , string [ ] > > ( ) ,
130
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( ) ,
103
131
Show = Mock . Of < Action > ( ) ,
104
132
} ;
105
133
106
134
// ACT
107
- logger . Log ( LogLevel . Error , new Exception ( "TestException" ) , "TestMessage" ) ;
135
+ logger . Log ( level , new Exception ( "TestException" ) , "TestMessage" ) ;
108
136
109
137
// ASSERT
110
138
Mock . Get ( logger . Show ) . Verify ( invoke => invoke ( ) , Times . Once ) ;
111
139
}
140
+
141
+ [ Theory ]
142
+ [ InlineData ( LogLevel . Trace ) ]
143
+ [ InlineData ( LogLevel . Debug ) ]
144
+ [ InlineData ( LogLevel . Information ) ]
145
+ [ InlineData ( LogLevel . Warning ) ]
146
+ public void Log_does_not_show_LogDisplay ( LogLevel level )
147
+ {
148
+ // ARRANGE
149
+ var logger = new LogDisplayLogger ( "Test" )
150
+ {
151
+ RecordLine = Mock . Of < Action < string , object [ ] > > ( ) ,
152
+ Show = Mock . Of < Action > ( ) ,
153
+ } ;
154
+
155
+ // ACT
156
+ logger . Log ( level , new Exception ( "TestException" ) , "TestMessage" ) ;
157
+
158
+ // ASSERT
159
+ Mock . Get ( logger . Show ) . Verify ( invoke => invoke ( ) , Times . Never ) ;
160
+ }
161
+
162
+ [ Fact ]
163
+ public void Log_throws_when_logLevel_is_wrong ( )
164
+ {
165
+ // ARRANGE
166
+ var logger = new LogDisplayLogger ( "Test" ) ;
167
+
168
+ // ACT & ASSERT
169
+ Assert . Throws < ArgumentOutOfRangeException > ( ( ) =>
170
+ {
171
+ logger . Log ( ( LogLevel ) 100 , new Exception ( "TestException" ) , "TestMessage" ) ;
172
+ } ) ;
173
+ }
112
174
}
0 commit comments