Commit | Line | Data |
5a2e0210 |
1 | use strict; |
2 | use warnings; |
f0e3c221 |
3 | |
5a2e0210 |
4 | use Test::More; |
f0e3c221 |
5 | use Config::Any::XML; |
6 | |
5a2e0210 |
7 | if ( !Config::Any::XML->is_supported ) { |
8 | plan skip_all => 'XML format not supported'; |
9 | } |
10 | else { |
bb941906 |
11 | plan tests => 6; |
5a2e0210 |
12 | } |
f0e3c221 |
13 | |
5a2e0210 |
14 | { |
15 | my $config = Config::Any::XML->load( 't/conf/conf.xml' ); |
f0e3c221 |
16 | ok( $config ); |
17 | is( $config->{ name }, 'TestApp' ); |
18 | } |
5770ffc0 |
19 | |
20 | # test invalid config |
9d569cf0 |
21 | SKIP: { |
dcfb1d1d |
22 | my $broken_libxml |
23 | = eval { require XML::LibXML; XML::LibXML->VERSION lt '1.59'; }; |
9d569cf0 |
24 | skip 'XML::LibXML < 1.58 has issues', 2 if $broken_libxml; |
25 | |
dcfb1d1d |
26 | local $SIG{ __WARN__ } = sub { }; # squash warnings from XML::Simple |
77f14cda |
27 | my $file = 't/invalid/conf.xml'; |
5770ffc0 |
28 | my $config = eval { Config::Any::XML->load( $file ) }; |
29 | |
30 | ok( !$config, 'config load failed' ); |
dcfb1d1d |
31 | ok( $@, "error thrown ($@)" ); |
5770ffc0 |
32 | } |
bb941906 |
33 | |
34 | # test conf file with array ref |
35 | { |
36 | my $file = 't/conf/conf_arrayref.xml'; |
37 | my $config = eval { Config::Any::XML->load( $file ) }; |
38 | |
39 | ok( $config, 'config loaded' ); |
40 | ok( !$@, 'no error thrown' ); |
41 | } |