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