add some tests for configfile default => coderef topic/default_with_instance
Gordon Irving [Wed, 30 Sep 2009 13:57:25 +0000 (14:57 +0100)]
t/008_configfromfile.t

index 292e6f5..62e6ed9 100644 (file)
@@ -13,7 +13,7 @@ if ( !eval { require MooseX::ConfigFromFile } )
 }
 else
 {
-    plan tests => 25;
+    plan tests => 37;
 }
 
 {
@@ -76,6 +76,17 @@ else
     );
 }
 
+{
+    package App::DefaultConfigFileCodeRef;
+
+    use Moose;
+    extends 'App';
+
+    has '+configfile' => (
+        default => sub { return File::Spec->canonpath('/notused/default') },
+    );
+}
+
 # No config specified
 {
     local @ARGV = qw( --required_from_argv 1 );
@@ -95,6 +106,23 @@ else
     }
 }
 
+# No config specified
+{
+    local @ARGV = qw( --required_from_argv 1 );
+
+    {
+        my $app = App::DefaultConfigFileCodeRef->new_with_options;
+        isa_ok( $app, 'App::DefaultConfigFileCodeRef' );
+        app_ok( $app );
+
+        ok(  !$app->config_from_override,
+            '... config_from_override false as expected' );
+
+        is( $app->configfile, File::Spec->canonpath('/notused/default'),
+            '... configfile is /notused/default as expected' );
+    }
+}
+
 # Config specified
 {
     local @ARGV = qw( --configfile /notused --required_from_argv 1 );
@@ -116,6 +144,17 @@ else
         is( $app->configfile, File::Spec->canonpath('/notused'),
             '... configfile is /notused as expected' );
     }
+    {
+        my $app = App::DefaultConfigFileCodeRef->new_with_options;
+        isa_ok( $app, 'App::DefaultConfigFileCodeRef' );
+        app_ok( $app );
+
+        ok( $app->config_from_override,
+             '... config_from_override true as expected' );
+
+        is( $app->configfile, File::Spec->canonpath('/notused'),
+            '... configfile is /notused as expected' );
+    }
 }
 
 # Required arg not supplied from cmdline