fix for ini subsections (RT #32726), use from_json for JSON v2.x, refactor test suite.
[p5sagit/Config-Any.git] / t / 10-branches.t
1 use strict;
2 use warnings;
3
4 use Test::More tests => 10;
5
6 use_ok( 'Config::Any' );
7
8 {
9     my @warnings;
10     local $SIG{ __WARN__ } = sub { push @warnings, @_ };
11
12     Config::Any->load_files();
13     like(
14         shift @warnings,
15         qr/^No files specified!/,
16         "load_files expects args"
17     );
18
19     Config::Any->load_files( {} );
20     like(
21         shift @warnings,
22         qr/^No files specified!/,
23         "load_files expects files"
24     );
25
26     Config::Any->load_stems();
27     like(
28         shift @warnings,
29         qr/^No stems specified!/,
30         "load_stems expects args"
31     );
32
33     Config::Any->load_stems( {} );
34     like(
35         shift @warnings,
36         qr/^No stems specified!/,
37         "load_stems expects stems"
38     );
39 }
40
41 my @files = glob( "t/conf/conf.*" );
42 my $filter = sub { return };
43 ok( Config::Any->load_files( { files => \@files, use_ext => 0 } ),
44     "use_ext 0 works" );
45 ok( Config::Any->load_files( { files => \@files, use_ext => 1 } ),
46     "use_ext 1 works" );
47
48 ok( Config::Any->load_files(
49         { files => \@files, use_ext => 1, filter => \&$filter }
50     ),
51     "filter works"
52 );
53 eval {
54     Config::Any->load_files(
55         {   files   => \@files,
56             use_ext => 1,
57             filter  => sub { die }
58         }
59     );
60 };
61 ok( $@, "filter breaks" );
62
63 my @stems = qw(t/conf/conf);
64 ok( Config::Any->load_stems( { stems => \@stems, use_ext => 1 } ),
65     "load_stems with stems works" );