X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=t%2F61-features.t;fp=t%2F61-features.t;h=b2d84676f310c9ed043f91df49f21299526bae43;hp=0000000000000000000000000000000000000000;hb=41f47406cfe9dae0851eec4976ffcb7f4c368f22;hpb=e2ef8b2f3b310176936c27a9744fc671c9114111 diff --git a/t/61-features.t b/t/61-features.t new file mode 100644 index 0000000..b2d8467 --- /dev/null +++ b/t/61-features.t @@ -0,0 +1,51 @@ +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", 9 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" ); +} + + +