X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=t%2F50-general.t;h=4f7f971d452537391bed38add91f3db4a8c90deb;hp=cf334cba062207217db21cbf9a77314b18f75826;hb=HEAD;hpb=572501abb2165014af8973bf9a4aa1f8a522356d diff --git a/t/50-general.t b/t/50-general.t index cf334cb..4f7f971 100644 --- a/t/50-general.t +++ b/t/50-general.t @@ -1,11 +1,50 @@ -use Test::More tests => 2; - -use Config::Any::General; - -my $config = eval { Config::Any::General->load( 't/conf/conf.conf' ) }; - -SKIP: { - skip "Couldn't Load Config::General plugin", 2 if $@; - ok( $config ); - is( $config->{ name }, 'TestApp' ); -} +use strict; +use warnings; + +use Test::More; +use Config::Any; +use Config::Any::General; + +if ( !Config::Any::General->is_supported && !$ENV{RELEASE_TESTING}) { + plan skip_all => 'Config::General format not supported'; +} +else { + plan tests => 9; +} + +{ + my $config = Config::Any::General->load( 't/conf/conf.conf' ); + ok( $config ); + is( $config->{ name }, 'TestApp' ); + ok( exists $config->{ Component } ); +} + +{ + my $config = Config::Any::General->load( 't/conf/conf.conf', + { -LowerCaseNames => 1 } ); + ok( exists $config->{ component } ); +} + +{ + my $config + = Config::Any::General->load( 't/conf/single_element_arrayref.conf' ); + is_deeply $config->{ foo }, [ 'bar' ], 'single element arrayref'; +} + +# test invalid config +{ + my $file = 't/invalid/conf.conf'; + my $config = eval { Config::Any::General->load( $file ) }; + + is $config, undef, 'config load failed'; + isnt $@, '', 'error thrown'; +} + +# parse error generated on invalid config +{ + my $file = 't/invalid/conf.conf'; + my $config = eval { Config::Any->load_files( { files => [$file], use_ext => 1} ) }; + + is $config, undef, 'config load failed'; + isnt $@, '', 'error thrown'; +}