release 0.00100
[p5sagit/Log-Contextual.git] / t / log.t
CommitLineData
7cec609c 1use strict;
2use warnings;
3
c19d7bee 4use lib 't/lib';
5use VarLogger;
f11f9542 6use Log::Contextual qw{:log with_logger set_logger};
7cec609c 7use Test::More qw(no_plan);
f8c96d08 8my $var_logger1 = VarLogger->new;
9my $var_logger2 = VarLogger->new;
c19d7bee 10my $var_logger3 = VarLogger->new;
7cec609c 11
c19d7bee 12WITHLOGGER: {
98833ffb 13 with_logger sub { $var_logger2 } => sub {
7cec609c 14
98833ffb 15 with_logger $var_logger1 => sub {
c19d7bee 16 log_debug { 'nothing!' }
80c3e48b 17 };
c19d7bee 18 log_debug { 'frew!' };
2033c911 19
80c3e48b 20 };
2033c911 21
73c0f681 22 is( $var_logger1->var, 'dnothing!', 'inner scoped logger works' );
23 is( $var_logger2->var, 'dfrew!', 'outer scoped logger works' );
c19d7bee 24}
25
26SETLOGGER: {
27 set_logger(sub { $var_logger3 });
28 log_debug { 'set_logger' };
73c0f681 29 is( $var_logger3->var, 'dset_logger', 'set logger works' );
c19d7bee 30}
31
32SETWITHLOGGER: {
98833ffb 33 with_logger $var_logger1 => sub {
0f7a70e7 34 log_debug { 'nothing again!' };
35 set_logger(sub { $var_logger3 });
36 log_debug { 'this is a set inside a with' };
80c3e48b 37 };
c19d7bee 38
73c0f681 39 is( $var_logger1->var, 'dnothing again!',
c19d7bee 40 'inner scoped logger works after using set_logger'
41 );
42
0f7a70e7 43 is( $var_logger3->var, 'dthis is a set inside a with',
44 'set inside with works'
45 );
46
c19d7bee 47 log_debug { 'frioux!' };
73c0f681 48 is( $var_logger3->var, 'dfrioux!',
c19d7bee 49 q{set_logger's logger comes back after scoped logger}
50 );
2033c911 51}
f8c96d08 52
0f7a70e7 53VANILLA: {
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
f8c96d08 74ok(!eval { Log::Contextual->import; 1 }, 'Blank Log::Contextual import dies');
ba793593 75
76PASSTHROUGH: {
77 my @vars;
78
79 @vars = log_trace { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
80 is( $var_logger3->var, 'tfiSMBoC: bar', 'log_trace works with input');
81 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_trace passes data through correctly');
82
83 @vars = log_debug { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
84 is( $var_logger3->var, 'dfiSMBoC: bar', 'log_debug works with input');
85 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_debug passes data through correctly');
86
87 @vars = log_info { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
88 is( $var_logger3->var, 'ifiSMBoC: bar', 'log_info works with input');
89 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_info passes data through correctly');
90
91 @vars = log_warn { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
92 is( $var_logger3->var, 'wfiSMBoC: bar', 'log_warn works with input');
93 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_warn passes data through correctly');
94
95 @vars = log_error { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
96 is( $var_logger3->var, 'efiSMBoC: bar', 'log_error works with input');
97 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_error passes data through correctly');
98
99 @vars = log_fatal { 'fiSMBoC: ' . $_[1] } qw{foo bar baz};
100 is( $var_logger3->var, 'ffiSMBoC: bar', 'log_fatal works with input');
101 ok( eq_array(\@vars, [qw{foo bar baz}]), 'log_fatal passes data through correctly');
102
103
104
105 my $val;
106 $val = logS_trace { 'fiSMBoC: ' . $_[0] } 'foo';
107 is( $var_logger3->var, 'tfiSMBoC: foo', 'logS_trace works with input');
108 is( $val, 'foo', 'logS_trace passes data through correctly');
109
110 $val = logS_debug { 'fiSMBoC: ' . $_[0] } 'foo';
111 is( $var_logger3->var, 'dfiSMBoC: foo', 'logS_debug works with input');
112 is( $val, 'foo', 'logS_debug passes data through correctly');
113
114 $val = logS_info { 'fiSMBoC: ' . $_[0] } 'foo';
115 is( $var_logger3->var, 'ifiSMBoC: foo', 'logS_info works with input');
116 is( $val, 'foo', 'logS_info passes data through correctly');
117
118 $val = logS_warn { 'fiSMBoC: ' . $_[0] } 'foo';
119 is( $var_logger3->var, 'wfiSMBoC: foo', 'logS_warn works with input');
120 is( $val, 'foo', 'logS_warn passes data through correctly');
121
122 $val = logS_error { 'fiSMBoC: ' . $_[0] } 'foo';
123 is( $var_logger3->var, 'efiSMBoC: foo', 'logS_error works with input');
124 is( $val, 'foo', 'logS_error passes data through correctly');
125
126 $val = logS_fatal { 'fiSMBoC: ' . $_[0] } 'foo';
127 is( $var_logger3->var, 'ffiSMBoC: foo', 'logS_fatal works with input');
128 is( $val, 'foo', 'logS_fatal passes data through correctly');
129
3424b376 130 ok(!eval "logS_error { 'frew' } 'bar', 'baz'; 1", 'logS_$level dies from too many args');
ba793593 131}