summaryrefslogtreecommitdiffstats
path: root/t/subcontainers.t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2011-10-10 14:10:14 -0500
committerJesse Luehrs <doy@tozt.net>2011-10-10 14:10:14 -0500
commite1c675f0a434b6323cff812c8293eee5dc0c6c28 (patch)
treeef5fecdf59d6e925358539b3a07812c3c8c02b13 /t/subcontainers.t
parent3ccbed1506d350a63abe81657ace5e11c7da5ee4 (diff)
downloadbread-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.t42
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;