1use strict;
2use warnings;
3
4{ no warnings 'once';
5  @Config::MVP::Reader::Finder::DONT_FIND = qw( Config::MVP::Reader::INI );
6}
7
8use Test::More;
9
10use lib 't/lib';
11
12{
13  package CMRFBA;
14  use Moose;
15  extends 'Config::MVP::Assembler';
16  with 'Config::MVP::Assembler::WithBundles';
17}
18
19{
20  package CMRFB;
21  use Moose;
22  extends 'Config::MVP::Reader::Finder';
23
24  sub build_assembler { CMRFBA->new; }
25}
26
27my $config = CMRFB->read_config('t/eg/config');
28
29my @sections = $config->sections;
30
31is(@sections, 7, "there are seven sections");
32
33my ($bar, $baz, $b_1, $b_2, $b_b, $b_3, $quux) = @sections;
34
35is($bar->name,     'Foo::Bar',  '1st is Foo::Bar (name)');
36is($bar->package,  'Foo::Bar',  '1st is Foo::Bar (pkg)');
37
38is($baz->name,     'bz',        '2nd is bz (name)');
39is($baz->package,  'Foo::Baz',  '2nd is Foo::Baz (pkg)');
40
41is($b_1->name,     'boondle_1', '2nd is boondle_1 (name)');
42is($b_1->package,  'Foo::Boo1', '2nd is Foo::Boo1 (pkg)');
43
44is($b_2->name,     'boondle_2', '2nd is boondle_2 (name)');
45is($b_2->package,  'Foo::Boo2', '2nd is Foo::Boo2 (pkg)');
46
47is($b_b->name,     'boondle_B', '3nd is boondle_B (name)');
48is($b_b->package,  'Foo::Bar',  '3nd is Foo::Bar (pkg)');
49
50is($b_3->name,     'boondle_3', '4th is boondle_3 (name)');
51is($b_3->package,  'Foo::Boo2', '4th is Foo::Boo2 (pkg)');
52
53is($quux->name,    'Foo::Quux', '5th is Foo::Quux (name)');
54is($quux->package, 'Foo::Quux', '5th is Foo::Quux (pkg)');
55
56done_testing;
57