use strict; use warnings; use Test::More; use Object::Container; { package Foo; use base 'Class::Accessor::Fast'; sub name { 'foo' } package Bar; use base 'Class::Accessor::Fast'; sub name { 'bar' } } subtest load_all => sub { my $c = Object::Container->new; $c->register('Foo'); $c->register('Bar'); # doesn't load yet ok !$c->objects->{'Foo'}, 'Foo is not loaded'; ok !$c->objects->{'Bar'}, 'Bar is not loaded'; $c->load_all; ok $c->objects->{'Foo'}, 'Foo is loaded'; ok $c->objects->{'Bar'}, 'Bar is loaded'; done_testing; }; subtest load_all_except => sub { my $c = Object::Container->new; $c->register('Foo'); $c->register('Bar'); # doesn't load yet ok !$c->objects->{'Foo'}, 'Foo is not loaded'; ok !$c->objects->{'Bar'}, 'Bar is not loaded'; $c->load_all_except(qw/Bar/); ok $c->objects->{'Foo'}, 'Foo is loaded'; ok !$c->objects->{'Bar'}, 'Bar is not loaded too'; done_testing; }; done_testing;