convert all uses of Test::Exception to Test::Fatal
[catagits/Catalyst-Runtime.git] / t / aggregate / unit_core_setup_log.t
CommitLineData
812082c6 1use strict;
2use warnings;
3
abf65c2a 4use Test::More tests => 30;
812082c6 5
6use Catalyst ();
7
8sub mock_app {
9 my $name = shift;
10 my $meta = Moose->init_meta( for_class => $name );
11 $meta->superclasses('Catalyst');
12 return $meta->name;
13}
14
15sub test_log_object {
16 my ($log, %expected) = @_;
17 foreach my $level (keys %expected) {
18 my $method_name = "is_$level";
19 if ($expected{$level}) {
20 ok( $log->$method_name(), "Level $level on" );
21 }
22 else {
23 ok( !$log->$method_name(), "Level $level off" );
24 }
25 }
26}
27
803210fa 28local %ENV = %ENV;
29
30# Remove all relevant env variables to avoid accidental fail
31foreach my $name (grep { /^(CATALYST|TESTAPP)/ } keys %ENV) {
32 delete $ENV{$name};
33}
812082c6 34
35{
803210fa 36 my $app = mock_app('TestAppParseLogLevels');
812082c6 37 $app->setup_log('error,warn');
38 ok !$app->debug, 'Not in debug mode';
39 test_log_object($app->log,
eaae9a92 40 fatal => 1,
812082c6 41 error => 1,
42 warn => 1,
43 info => 0,
44 debug => 0,
45 );
46}
47{
803210fa 48 local %ENV = %ENV;
49 $ENV{CATALYST_DEBUG} = 1;
50 my $app = mock_app('TestAppLogDebugEnvSet');
812082c6 51 $app->setup_log('');
52 ok $app->debug, 'In debug mode';
53 test_log_object($app->log,
e2422920 54 fatal => 1,
55 error => 1,
56 warn => 1,
57 info => 1,
812082c6 58 debug => 1,
59 );
60}
61{
803210fa 62 local %ENV = %ENV;
63 $ENV{CATALYST_DEBUG} = 0;
64 my $app = mock_app('TestAppLogDebugEnvUnset');
abf65c2a 65 $app->setup_log('warn');
66 ok !$app->debug, 'Not In debug mode';
67 test_log_object($app->log,
c72d2e24 68 fatal => 1,
69 error => 1,
abf65c2a 70 warn => 1,
71 info => 0,
72 debug => 0,
73 );
74}
75{
803210fa 76 my $app = mock_app('TestAppLogEmptyString');
812082c6 77 $app->setup_log('');
78 ok !$app->debug, 'Not In debug mode';
c72d2e24 79 # Note that by default, you get _all_ the log levels turned on
80 test_log_object($app->log,
81 fatal => 1,
82 error => 1,
83 warn => 1,
84 info => 1,
85 debug => 1,
86 );
812082c6 87}
88{
803210fa 89 my $app = mock_app('TestAppLogDebugOnly');
812082c6 90 $app->setup_log('debug');
91 ok $app->debug, 'In debug mode';
92 test_log_object($app->log,
e2422920 93 fatal => 1,
94 error => 1,
95 warn => 1,
96 info => 1,
812082c6 97 debug => 1,
98 );
99}