diff options
Diffstat (limited to 't/subcontainers.t')
-rw-r--r-- | t/subcontainers.t | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/t/subcontainers.t b/t/subcontainers.t new file mode 100644 index 0000000..992f873 --- /dev/null +++ b/t/subcontainers.t @@ -0,0 +1,42 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +{ + package SubContainer; + use Moose; + use Bread::Board::Declare; + + has foo_sub => ( + is => 'ro', + isa => 'Str', + value => 'FOOSUB', + ); +} + +{ + package Container; + use Moose; + use Bread::Board::Declare; + + has subcontainer => ( + traits => ['Container'], + is => 'ro', + isa => 'SubContainer', + ); +} + +{ + my $c = Container->new; + is($c->resolve(service => 'subcontainer/foo_sub'), 'FOOSUB'); + is($c->subcontainer->foo_sub, 'FOOSUB'); +} + +{ + my $c = Container->new(subcontainer => SubContainer->new(foo_sub => 'SUBFOO')); + is($c->resolve(service => 'subcontainer/foo_sub'), 'SUBFOO'); + is($c->subcontainer->foo_sub, 'SUBFOO'); +} + +done_testing; |