Re-enable AutoPrereq
[gitmo/MooseX-Getopt.git] / t / 008_configfromfile.t
index 292e6f5..ea3f9b5 100644 (file)
@@ -3,18 +3,13 @@
 use strict;
 use warnings;
 
+use Test::More tests => 37;
 use Test::Exception;
-use Test::More;
 use File::Spec;
 
-if ( !eval { require MooseX::ConfigFromFile } )
-{
-    plan skip_all => 'Test requires MooseX::ConfigFromFile';
-}
-else
-{
-    plan tests => 25;
-}
+use Test::Requires 0.05 {
+    'MooseX::ConfigFromFile' => 0.01, # skip all if not installed
+};
 
 {
     package App;
@@ -76,6 +71,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 +101,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 +139,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