@@ -36,6 +36,17 @@ class _CallbackPrinter extends LogPrinter {
36
36
}
37
37
}
38
38
39
+ /// Test class for the lazy-initialization of variables.
40
+ class LazyLogger {
41
+ static bool ? printed;
42
+ static final filter = ProductionFilter ();
43
+ static final printer = _CallbackPrinter ((l, m, e, s) {
44
+ printed = true ;
45
+ return [];
46
+ });
47
+ static final logger = Logger (filter: filter, printer: printer);
48
+ }
49
+
39
50
void main () {
40
51
Level ? printedLevel;
41
52
dynamic printedMessage;
@@ -194,10 +205,33 @@ void main() {
194
205
expect (printedMessage, 'This is' );
195
206
});
196
207
208
+ test ('Setting filter Levels' , () {
209
+ var filter = ProductionFilter ();
210
+ expect (filter.level, Logger .level);
211
+
212
+ final initLevel = Level .warning;
213
+ var logger = Logger (
214
+ filter: filter,
215
+ printer: callbackPrinter,
216
+ level: initLevel,
217
+ );
218
+ expect (filter.level, initLevel);
219
+
220
+ filter.level = Level .fatal;
221
+ expect (filter.level, Level .fatal);
222
+ });
223
+
197
224
test ('Logger.close' , () async {
198
225
var logger = Logger ();
199
226
expect (logger.isClosed (), false );
200
227
await logger.close ();
201
228
expect (logger.isClosed (), true );
202
229
});
230
+
231
+ test ('Lazy Logger Initialization' , () {
232
+ expect (LazyLogger .printed, isNull);
233
+ LazyLogger .filter.level = Level .warning;
234
+ LazyLogger .logger.i ("This is an info message and should not show" );
235
+ expect (LazyLogger .printed, isNull);
236
+ });
203
237
}
0 commit comments