1use strict;
2use warnings;
3
4use lib 't/lib';
5
6use Test::More;
7use Config::MVP::Reader::INI;
8
9my $seq = Config::MVP::Reader::INI->read_config('eg/mvp.ini');
10
11my @section_names = $seq->section_names;
12
13is_deeply(
14  \@section_names,
15  [ qw(_ Foo::Bar baz), 'Bap Bop Boop', 'Bap Bop Blort' ],
16  "loaded the right names from sample config",
17);
18
19is($seq->section_named('_')->package, undef, 'root package');
20
21is_deeply(
22  $seq->section_named('_')->payload,
23  { foo => 10, bar => 11 },
24  "_ payload as expected",
25);
26
27is($seq->section_named('Foo::Bar')->package, 'Foo::Bar', 'Foo::Bar package');
28
29is_deeply(
30  $seq->section_named('Foo::Bar')->payload,
31  { x => 10, y => [ 20, 30 ], z => -123 },
32  'Foo::Bar payload',
33);
34
35is($seq->section_named('baz')->package, 'Foo::Bar', 'baz package');
36
37is_deeply(
38  $seq->section_named('baz')->payload,
39  { x => 1 },
40  'baz payload',
41);
42
43is($seq->section_named('Bap Bop Boop')->package, 'Foo::Bar', 'Bap Bop Boop package');
44
45is_deeply(
46  $seq->section_named('Bap Bop Boop')->payload,
47  { yarp => 1 },
48  'Bap Bop Boop payload',
49);
50
51done_testing;
52