X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMooseX-Getopt.git;a=blobdiff_plain;f=t%2F008_configfromfile.t;h=cb54a1c9325bdda63a7c1ff9a7475be21a4f6b5e;hp=3e8dc4c79567885999fc27dbb7ec2983c4c62e2d;hb=cd4283e8e3f9124e475e839847bcb9a1b185411e;hpb=fec039b6a25f3fa5c0ab18ef1697f65fc4fb1a59 diff --git a/t/008_configfromfile.t b/t/008_configfromfile.t index 3e8dc4c..cb54a1c 100644 --- a/t/008_configfromfile.t +++ b/t/008_configfromfile.t @@ -2,7 +2,7 @@ use strict; use warnings; use Test::Requires { 'MooseX::ConfigFromFile' => '0.06' }; # skip all if not installed -use Test::More tests => 38; +use Test::More tests => 50; use Test::Fatal; use Path::Tiny; use Test::NoWarnings 1.04 ':early'; @@ -77,6 +77,16 @@ use Test::NoWarnings 1.04 ':early'; ); } +{ + package App::ConfigFileWrapped; + + use Moose; + extends 'App'; + + around configfile => sub { '/notused/default' }; +} + + # No config specified { local @ARGV = qw( --required_from_argv 1 ); @@ -109,6 +119,18 @@ use Test::NoWarnings 1.04 ':early'; is( $app->configfile, path('/notused/default'), '... configfile is /notused/default as expected' ); } + + { + my $app = App::ConfigFileWrapped->new_with_options; + isa_ok( $app, 'App::ConfigFileWrapped' ); + app_ok( $app ); + + ok( !$app->config_from_override, + '... config_from_override false as expected' ); + + is( $app->configfile, path('/notused/default'), + '... configfile is /notused/default as expected' ); + } } # Config specified @@ -140,7 +162,22 @@ use Test::NoWarnings 1.04 ':early'; ok( $app->config_from_override, '... config_from_override true as expected' ); - is( $app->configfile, path('/notused'), + is( $app->configfile, path('/notused/override'), + '... configfile is /notused/override as expected' ); + } + TODO: { + my $app = App::ConfigFileWrapped->new_with_options; + isa_ok( $app, 'App::ConfigFileWrapped' ); + app_ok( $app ); + + ok( $app->config_from_override, + '... config_from_override true as expected' ); + +# FIXME - in order for this to work, we need to fix CFF so the +# configfile method always returns the actual value of the attribute, +# not the default sub thingy. + local $TODO = 'MooseX::ConfigFromFile needs fixes'; + is( $app->configfile, path('/notused/override'), '... configfile is /notused as expected' ); } }