X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F53-perl.t;h=69529483bbec355889e6ff09c8d9dea305d9da07;hb=20190ef76826de69f3b7d6c53aaabe791b08a13c;hp=4914075b6515d248297b3987ececf33879f4d5fb;hpb=f0e3c2214342d0d8a8839009b8b9c7e6bfbc7ab2;p=p5sagit%2FConfig-Any.git diff --git a/t/53-perl.t b/t/53-perl.t index 4914075..6952948 100644 --- a/t/53-perl.t +++ b/t/53-perl.t @@ -1,11 +1,60 @@ -use Test::More tests => 2; +use strict; +use warnings; +use Test::More tests => 12; +use Config::Any; use Config::Any::Perl; -my $config = eval { Config::Any::Perl->load( 't/conf/conf.pl' ) }; +{ + my $file = 't/conf/conf.pl'; + my $config = Config::Any::Perl->load( $file ); -SKIP: { - skip "Couldn't Load Perl plugin", 2 if $@; ok( $config ); is( $config->{ name }, 'TestApp' ); + + my $config_load2 = Config::Any::Perl->load( $file ); + is_deeply( $config_load2, $config, 'multiple loads of the same file' ); +} + +# test invalid config +{ + my $file = 't/invalid/conf.pl'; + my $config; + my $loaded = eval { + $config = Config::Any::Perl->load( $file ); + 1; + }; + + ok !$loaded, 'config load failed'; + is $config, undef, 'config load failed'; + like $@, qr/syntax error/, 'error thrown'; +} + +# parse error generated on invalid config +{ + my $file = 't/invalid/conf.pl'; + my $config; + my $loaded = eval { + $config = Config::Any::Perl->load( $file ); + Config::Any->load_files( { files => [$file], use_ext => 1} ); + 1; + }; + + ok !$loaded, 'config load failed'; + is $config, undef, 'config load failed'; + like $@, qr/syntax error/, 'error thrown'; +} + +# test missing config +{ + my $file = 't/invalid/missing.pl'; + my $config; + my $loaded = eval { + $config = Config::Any::Perl->load( $file ); + 1; + }; + + ok !$loaded, 'config load failed'; + is $config, undef, 'config load failed'; + like $@, qr/No such file or directory/, 'error thrown'; }