Test case using Exception::Class
[catagits/Catalyst-Runtime.git] / t / unit_core_setup.t
index a319007..cbc5aac 100644 (file)
@@ -1,5 +1,6 @@
 use strict;
 use warnings;
+use Class::MOP::Class;
 use Catalyst::Runtime;
 
 use Test::More tests => 29;
@@ -25,10 +26,17 @@ sub build_test_app_with_setup {
     return $name;
 }
 
+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 = build_test_app_with_setup('MyTestDebug', '-Debug');
+    my $app = build_test_app_with_setup('TestAppMyTestDebug', '-Debug');
 
-    ok my $c = MyTestDebug->new, 'Get debug app object';
+    ok my $c = $app->new, 'Get debug app object';
     ok my $log = $c->log, 'Get log object';
     isa_ok $log, 'Catalyst::Log', 'It should be a Catalyst::Log object';
     ok $log->is_warn, 'Warnings should be enabled';
@@ -40,7 +48,7 @@ sub build_test_app_with_setup {
 }
 
 {
-    my $app = build_test_app_with_setup('MyTestLogParam', '-Log=warn,error,fatal');
+    my $app = build_test_app_with_setup('TestAppMyTestLogParam', '-Log=warn,error,fatal');
 
     ok my $c = $app->new, 'Get log app object';
     ok my $log = $c->log, 'Get log object';
@@ -53,7 +61,7 @@ sub build_test_app_with_setup {
     ok !$c->debug, 'Catalyst debugging is off';
 }
 {
-    my $app = build_test_app_with_setup('MyTestNoParams');
+    my $app = build_test_app_with_setup('TestAppMyTestNoParams');
 
     ok my $c = $app->new, 'Get log app object';
     ok my $log = $c->log, 'Get log object';
@@ -65,16 +73,16 @@ sub build_test_app_with_setup {
     ok $log->is_debug, 'Debugging should be enabled';
     ok !$c->debug, 'Catalyst debugging turned off';
 }
+my $log_meta = Class::MOP::Class->create_anon_class(
+    methods => { map { $_ => sub { 0 } } qw/debug error fatal info warn/ },
+);
 {
-    package MyTestAppWithOwnLogger;
+    package TestAppWithOwnLogger;
     use base qw/Catalyst/;
-    use Test::MockObject;
-    my $log = Test::MockObject->new;
-    $log->set_false(qw/debug error fatal info warn/);
-    __PACKAGE__->log($log);
+    __PACKAGE__->log($log_meta->new_object);
     __PACKAGE__->setup('-Debug');
 }
 
-ok my $c = MyTestAppWithOwnLogger->new, 'Get with own logger app object';
+ok my $c = TestAppWithOwnLogger->new, 'Get with own logger app object';
 ok $c->debug, '$c->debug is true';