tests for Core
[p5sagit/Log-Contextual.git] / t / log.t
1 use strict;
2 use warnings;
3
4 use lib 't/lib';
5 use VarLogger;
6 use Log::Contextual qw{:log with_logger set_logger};
7 use Test::More qw(no_plan);
8 my $var_logger1 = VarLogger->new;
9 my $var_logger2 = VarLogger->new;
10 my $var_logger3 = VarLogger->new;
11
12 WITHLOGGER: {
13    with_logger sub { $var_logger2 } => sub {
14
15       with_logger $var_logger1 => sub {
16          log_debug { 'nothing!' }
17       };
18       log_debug { 'frew!' };
19
20    };
21
22    is( $var_logger1->var, 'dnothing!', 'inner scoped logger works' );
23    is( $var_logger2->var, 'dfrew!', 'outer scoped logger works' );
24 }
25
26 SETLOGGER: {
27    set_logger(sub { $var_logger3 });
28    log_debug { 'set_logger' };
29    is( $var_logger3->var, 'dset_logger', 'set logger works' );
30 }
31
32 SETWITHLOGGER: {
33    with_logger $var_logger1 => sub {
34       log_debug { 'nothing again!' };
35       set_logger(sub { $var_logger3 });
36       log_debug { 'this is a set inside a with' };
37    };
38
39    is( $var_logger1->var, 'dnothing again!',
40       'inner scoped logger works after using set_logger'
41    );
42
43    is( $var_logger3->var, 'dthis is a set inside a with',
44       'set inside with works'
45    );
46
47    log_debug { 'frioux!' };
48    is( $var_logger3->var, 'dfrioux!',
49       q{set_logger's logger comes back after scoped logger}
50    );
51 }
52
53 VANILLA: {
54    log_trace { 'fiSMBoC' };
55    is( $var_logger3->var, 'tfiSMBoC', 'trace works');
56
57    log_debug { 'fiSMBoC' };
58    is( $var_logger3->var, 'dfiSMBoC', 'debug works');
59
60    log_info { 'fiSMBoC' };
61    is( $var_logger3->var, 'ifiSMBoC', 'info works');
62
63    log_warn { 'fiSMBoC' };
64    is( $var_logger3->var, 'wfiSMBoC', 'warn works');
65
66    log_error { 'fiSMBoC' };
67    is( $var_logger3->var, 'efiSMBoC', 'error works');
68
69    log_fatal { 'fiSMBoC' };
70    is( $var_logger3->var, 'ffiSMBoC', 'fatal works');
71
72 }
73
74 ok(!eval { Log::Contextual->import; 1 }, 'Blank Log::Contextual import dies');