X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=t%2F51-ini.t;h=8040d5b91b7b5e52fe56f0a15690667302098211;hp=206d1a7b08783feb60642eaef85321d38cdfc4c4;hb=5a2e0210fe5c7da046be37b4240008f2b667be67;hpb=572501abb2165014af8973bf9a4aa1f8a522356d diff --git a/t/51-ini.t b/t/51-ini.t index 206d1a7..8040d5b 100644 --- a/t/51-ini.t +++ b/t/51-ini.t @@ -1,11 +1,48 @@ -use Test::More tests => 2; - -use Config::Any::INI; - -my $config = eval { Config::Any::INI->load( 't/conf/conf.ini' ) }; - -SKIP: { - skip "Couldn't Load INI plugin", 2 if $@; - ok( $config ); - is( $config->{ name }, 'TestApp' ); -} +use strict; +use warnings; + +use Test::More; +use Config::Any::INI; + +if ( !Config::Any::INI->is_supported ) { + plan skip_all => 'INI format not supported'; +} +else { + plan tests => 11; +} + +{ + my $config = Config::Any::INI->load( 't/conf/conf.ini' ); + ok( $config, 'config loaded' ); + is( $config->{ name }, 'TestApp', "toplevel key lookup succeeded" ); + is( $config->{ Component }->{ 'Controller::Foo' }->{ foo }, + 'bar', "nested hashref hack lookup succeeded" ); +} + +{ + my $config = Config::Any::INI->load( 't/conf/conf2.ini' ); + ok( $config, 'config loaded' ); + is( $config->{ name }, 'TestApp', "toplevel key lookup succeeded" ); + is( $config->{ 'Controller::Foo' }->{ foo }, + 'bar', "nested hashref hack lookup succeeded" ); +} + +{ + local $Config::Any::INI::MAP_SECTION_SPACE_TO_NESTED_KEY = 0; + my $config = Config::Any::INI->load( 't/conf/conf.ini' ); + ok( $config, 'config loaded (no-map-space mode)' ); + is( $config->{ name }, 'TestApp', "toplevel key lookup succeeded" ); + is( $config->{ 'Component Controller::Foo' }->{ foo }, + 'bar', "unnested key lookup succeeded" ); +} + +{ + my $config = Config::Any::INI->load( 't/conf/subsections.ini' ); + + my %expected + = ( section1 => + { a => 1, subsection1 => { b => 2 }, subsection2 => { c => 3 } } + ); + ok( $config, 'config loaded' ); + is_deeply( $config, \%expected, 'subsections parsed properly' ); +}