diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-10-10 14:10:14 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-10-10 14:10:14 -0500 |
commit | e1c675f0a434b6323cff812c8293eee5dc0c6c28 (patch) | |
tree | ef5fecdf59d6e925358539b3a07812c3c8c02b13 /t/subcontainers.t | |
parent | 3ccbed1506d350a63abe81657ace5e11c7da5ee4 (diff) | |
download | bread-board-declare-e1c675f0a434b6323cff812c8293eee5dc0c6c28.tar.gz bread-board-declare-e1c675f0a434b6323cff812c8293eee5dc0c6c28.zip |
sketch out subcontainers (still needs work)
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; |