Back out 10498 and 10097
[catagits/Catalyst-Runtime.git] / t / unit_core_setup_stats.t
CommitLineData
7c79dcf3 1use strict;
2use warnings;
3
4use Test::More tests => 5;
5use Test::MockObject;
6
7use Catalyst ();
8
9my %log_messages; # TODO - Test log messages as expected.
10my $mock_log = Test::MockObject->new;
11foreach my $level (qw/debug info warn error fatal/) {
12 $mock_log->mock($level, sub {
13 $log_messages{$level} ||= [];
14 push(@{ $log_messages{$level} }, $_[1]);
15 });
16}
17
18sub mock_app {
19 my $name = shift;
20 %log_messages = (); # Flatten log messages.
21 print "Setting up mock application: $name\n";
22 my $meta = Moose->init_meta( for_class => $name );
23 $meta->superclasses('Catalyst');
24 $meta->add_method('log', sub { $mock_log });
25 return $meta->name;
26}
27
28local %ENV; # Ensure blank or someone, somewhere will fail..
29
30{
31 my $app = mock_app('TestNoStats');
32 $app->setup_stats();
33 ok !$app->use_stats, 'stats off by default';
34}
35{
36 my $app = mock_app('TestStats');
37 $app->setup_stats(1);
38 ok $app->use_stats, 'stats on if you say >setup_stats(1)';
39}
40{
41 my $app = mock_app('TestStatsDebugTurnsStatsOn');
42 $app->meta->add_method('debug' => sub { 1 });
43 $app->setup_stats();
44 ok $app->use_stats, 'debug on turns stats on';
45}
46{
47 local %ENV = ( CATALYST_STATS => 1 );
48 my $app = mock_app('TestStatsAppStatsEnvSet');
49 $app->setup_stats();
50 ok $app->use_stats, 'ENV turns stats on';
51}
52{
53 local %ENV = ( CATALYST_STATS => 0 );
54 my $app = mock_app('TestStatsAppStatsEnvUnset');
55 $app->meta->add_method('debug' => sub { 1 });
56 $app->setup_stats(1);
57 ok !$app->use_stats, 'ENV turns stats off, even when debug on and ->setup_stats(1)';
58}
59