package MockApp; use strict; use warnings; $|++; use Test::More tests => 10; use Scalar::Util qw(blessed reftype); use Config::Any; use Config::Any::INI; our $cfg_file = 't/conf/conf.foo'; eval { Config::Any::INI->load( $cfg_file ); }; SKIP: { skip "File loading backend for INI not found", 10 if $@; ok( my $c_arr = Config::Any->load_files( { files => [ $cfg_file ], force_plugins => [ qw(Config::Any::INI) ] } ), "load file with parser forced" ); ok( my $c = $c_arr->[ 0 ], "load_files returns an arrayref" ); ok( ref $c, "load_files arrayref contains a ref" ); my $ref = blessed $c ? reftype $c : ref $c; is( substr( $ref, 0, 4 ), "HASH", "hashref" ); my ( $name, $cfg ) = each %$c; is( $name, $cfg_file, "filename matches" ); my $cfgref = blessed $cfg ? reftype $cfg : ref $cfg; is( substr( $cfgref, 0, 4 ), "HASH", "hashref cfg" ); is( $cfg->{ name }, 'TestApp', "appname parses" ); is( $cfg->{ Component }{ "Controller::Foo" }->{ foo }, 'bar', "component->cntrlr->foo = bar" ); is( $cfg->{ Model }{ "Model::Baz" }->{ qux }, 'xyzzy', "model->model::baz->qux = xyzzy" ); ok( my $c_arr_2 = Config::Any->load_files( { files => [ $cfg_file ], force_plugins => [ qw(Config::Any::INI) ], use_ext => 1 } ), "load file with parser forced" ); }