4 use Test::More tests => 24;
5 use Test::NoWarnings; # Adds an extra test.
12 $LOG = 'Catalyst::Log';
17 no warnings 'redefine';
18 *Catalyst::Log::_send_to_log = sub {
25 ok my $log = $LOG->new, '... and creating a new log object should succeed';
26 isa_ok $log, $LOG, '... and the object it returns';
28 can_ok $log, 'is_info';
29 ok $log->is_info, '... and the default behavior is to allow info messages';
32 ok $log->info('hello there!'),
33 '... passing it an info message should succeed';
35 can_ok $log, "_flush";
37 ok @MESSAGES, '... and flushing the log should succeed';
38 is scalar @MESSAGES, 1, '... with one log message';
39 like $MESSAGES[0], qr/^\[info\] hello there!$/,
40 '... which should match the format we expect';
44 package Catalyst::Log::Subclass;
46 extends 'Catalyst::Log';
50 push @MESSAGES, '---';
55 my $SUBCLASS = 'Catalyst::Log::Subclass';
56 can_ok $SUBCLASS, 'new';
57 ok $log = Catalyst::Log::Subclass->new,
58 '... and the log subclass constructor shoudl return a new object';
59 isa_ok $log, $SUBCLASS, '... and the object it returns';
60 isa_ok $log, $LOG, '... and it also';
63 ok $log->info('hi there!'),
64 '... passing it an info message should succeed';
66 can_ok $log, "_flush";
67 @MESSAGES = (); # clear the message log
69 ok @MESSAGES, '... and flushing the log should succeed';
70 is scalar @MESSAGES, 2, '... with two log messages';
71 is $MESSAGES[0], '---', '... with the first one being our new data';
72 like $MESSAGES[1], qr/^\[info\] hi there!$/,
73 '... which should match the format we expect';