X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Funit_core_setup_stats.t;h=9f7a8d318002c2fb2e0135ec4d83b67bffe948fb;hb=08f9c84867673a57d45bacbda7a301734a720fe7;hp=9323e452f67266a118b9edf078adca8d664bc07e;hpb=7c79dcf34b1c15b97859848c56c499f4c7acfd0c;p=catagits%2FCatalyst-Runtime.git diff --git a/t/unit_core_setup_stats.t b/t/unit_core_setup_stats.t index 9323e45..9f7a8d3 100644 --- a/t/unit_core_setup_stats.t +++ b/t/unit_core_setup_stats.t @@ -2,56 +2,67 @@ use strict; use warnings; use Test::More tests => 5; -use Test::MockObject; +use Class::MOP::Class; use Catalyst (); my %log_messages; # TODO - Test log messages as expected. -my $mock_log = Test::MockObject->new; -foreach my $level (qw/debug info warn error fatal/) { - $mock_log->mock($level, sub { - $log_messages{$level} ||= []; - push(@{ $log_messages{$level} }, $_[1]); - }); -} +my $mock_log = Class::MOP::Class->create_anon_class( + methods => { + map { my $level = $_; + $level => sub { + $log_messages{$level} ||= []; + push(@{ $log_messages{$level} }, $_[1]); + }, + } + qw/debug info warn error fatal/, + }, +)->new_object; sub mock_app { my $name = shift; %log_messages = (); # Flatten log messages. - print "Setting up mock application: $name\n"; + diag "Setting up mock application: $name"; my $meta = Moose->init_meta( for_class => $name ); $meta->superclasses('Catalyst'); $meta->add_method('log', sub { $mock_log }); return $meta->name; } -local %ENV; # Ensure blank or someone, somewhere will fail.. +local %ENV = %ENV; + +# Remove all relevant env variables to avoid accidental fail +foreach my $name (grep { /^(CATALYST|TESTAPP)/ } keys %ENV) { + delete $ENV{$name}; +} { - my $app = mock_app('TestNoStats'); + my $app = mock_app('TestAppNoStats'); $app->setup_stats(); ok !$app->use_stats, 'stats off by default'; } { - my $app = mock_app('TestStats'); + my $app = mock_app('TestAppStats'); $app->setup_stats(1); ok $app->use_stats, 'stats on if you say >setup_stats(1)'; } { - my $app = mock_app('TestStatsDebugTurnsStatsOn'); + my $app = mock_app('TestAppStatsDebugTurnsStatsOn'); $app->meta->add_method('debug' => sub { 1 }); $app->setup_stats(); ok $app->use_stats, 'debug on turns stats on'; } { - local %ENV = ( CATALYST_STATS => 1 ); - my $app = mock_app('TestStatsAppStatsEnvSet'); + local %ENV = %ENV; + $ENV{CATALYST_STATS} = 1; + my $app = mock_app('TestAppStatsEnvSet'); $app->setup_stats(); ok $app->use_stats, 'ENV turns stats on'; } { - local %ENV = ( CATALYST_STATS => 0 ); - my $app = mock_app('TestStatsAppStatsEnvUnset'); + local %ENV = %ENV; + $ENV{CATALYST_STATS} = 0; + my $app = mock_app('TestAppStatsEnvUnset'); $app->meta->add_method('debug' => sub { 1 }); $app->setup_stats(1); ok !$app->use_stats, 'ENV turns stats off, even when debug on and ->setup_stats(1)';