The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use lib 't/lib';

use Test::More;
use Config::MVP::Reader::INI;

my $seq = Config::MVP::Reader::INI->read_config('eg/mvp.ini');

my @section_names = $seq->section_names;

is_deeply(
  \@section_names,
  [ qw(_ Foo::Bar baz), 'Bap Bop Boop', 'Bap Bop Blort' ],
  "loaded the right names from sample config",
);

is($seq->section_named('_')->package, undef, 'root package');

is_deeply(
  $seq->section_named('_')->payload,
  { foo => 10, bar => 11 },
  "_ payload as expected",
);

is($seq->section_named('Foo::Bar')->package, 'Foo::Bar', 'Foo::Bar package');

is_deeply(
  $seq->section_named('Foo::Bar')->payload,
  { x => 10, y => [ 20, 30 ], z => -123 },
  'Foo::Bar payload',
);

is($seq->section_named('baz')->package, 'Foo::Bar', 'baz package');

is_deeply(
  $seq->section_named('baz')->payload,
  { x => 1 },
  'baz payload',
);

is($seq->section_named('Bap Bop Boop')->package, 'Foo::Bar', 'Bap Bop Boop package');

is_deeply(
  $seq->section_named('Bap Bop Boop')->payload,
  { yarp => 1 },
  'Bap Bop Boop payload',
);

done_testing;