X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F008_configfromfile.t;h=62e6ed9dea92f4c5617306c3782695fdca5643be;hb=3421d9c27e5a12656326ac9dd6c0dd9451b793ac;hp=93700b9c5ac7ab0b24c44c0abde13cc59fd7a066;hpb=9f1ec7c0c8860dae99efddfcbba9b30b4dd4bb3f;p=gitmo%2FMooseX-Getopt.git diff --git a/t/008_configfromfile.t b/t/008_configfromfile.t index 93700b9..62e6ed9 100644 --- a/t/008_configfromfile.t +++ b/t/008_configfromfile.t @@ -5,6 +5,7 @@ use warnings; use Test::Exception; use Test::More; +use File::Spec; if ( !eval { require MooseX::ConfigFromFile } ) { @@ -12,7 +13,7 @@ if ( !eval { require MooseX::ConfigFromFile } ) } else { - plan tests => 25; + plan tests => 37; } { @@ -55,7 +56,8 @@ else optional_from_config => 'from_config_2', ); - if ( $file ne '/notused/default' ) { + my $cpath = File::Spec->canonpath('/notused/default'); + if ( $file ne $cpath ) { $config{config_from_override} = 1; } @@ -70,7 +72,18 @@ else extends 'App'; has '+configfile' => ( - default => '/notused/default', + default => File::Spec->canonpath('/notused/default'), + ); +} + +{ + package App::DefaultConfigFileCodeRef; + + use Moose; + extends 'App'; + + has '+configfile' => ( + default => sub { return File::Spec->canonpath('/notused/default') }, ); } @@ -88,7 +101,24 @@ else ok( !$app->config_from_override, '... config_from_override false as expected' ); - is( $app->configfile, '/notused/default', + is( $app->configfile, File::Spec->canonpath('/notused/default'), + '... configfile is /notused/default as expected' ); + } +} + +# 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' ); } } @@ -111,7 +141,18 @@ else ok( $app->config_from_override, '... config_from_override true as expected' ); - is( $app->configfile, '/notused', + 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' ); } }