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