X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FConfig-Any.git;a=blobdiff_plain;f=t%2F54-xml.t;h=d3aa3d48b26cc487408689e70216befc64ca4351;hp=45fd66e805ff48a600267cdb46b95245bd5cac48;hb=c2a19f634f7a084c1e9c76142d4e7554895d454b;hpb=bb941906c239836c60ecce6d451cd896898f1efd diff --git a/t/54-xml.t b/t/54-xml.t index 45fd66e..d3aa3d4 100644 --- a/t/54-xml.t +++ b/t/54-xml.t @@ -2,19 +2,31 @@ use strict; use warnings; use Test::More; +use Config::Any; use Config::Any::XML; -if ( !Config::Any::XML->is_supported ) { +if ( !Config::Any::XML->is_supported && !$ENV{RELEASE_TESTING} ) { plan skip_all => 'XML format not supported'; } else { - plan tests => 6; + plan tests => 7; } { my $config = Config::Any::XML->load( 't/conf/conf.xml' ); - ok( $config ); - is( $config->{ name }, 'TestApp' ); + is_deeply $config, { + 'Component' => { + 'Controller::Foo' => { + 'foo' => 'bar' + }, + }, + 'name' => 'TestApp', + 'Model' => { + 'Model::Baz' => { + 'qux' => 'xyzzy', + }, + }, + }, 'config loaded'; } # test invalid config @@ -27,8 +39,8 @@ SKIP: { my $file = 't/invalid/conf.xml'; my $config = eval { Config::Any::XML->load( $file ) }; - ok( !$config, 'config load failed' ); - ok( $@, "error thrown ($@)" ); + is $config, undef, 'config load failed'; + isnt $@, '', 'error thrown'; } # test conf file with array ref @@ -36,6 +48,28 @@ SKIP: { my $file = 't/conf/conf_arrayref.xml'; my $config = eval { Config::Any::XML->load( $file ) }; - ok( $config, 'config loaded' ); - ok( !$@, 'no error thrown' ); + is_deeply $config, { + 'indicator' => 'submit', + 'elements' => [ + { + 'label' => 'Label1', + 'type' => 'Text', + }, + { + 'label' => 'Label2', + 'type' => 'Text', + }, + ], + }, 'config loaded'; + is $@, '', 'no error thrown'; } + +# parse error generated on invalid config +{ + my $file = 't/invalid/conf.xml'; + my $config = eval { Config::Any->load_files( { files => [$file], use_ext => 1} ) }; + + is $config, undef, 'config load failed'; + isnt $@, '', 'error thrown'; +} +