diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-07-27 11:25:20 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-07-27 11:39:01 -0500 |
commit | 946f6cd5f443b278239ec098bf4afda7c226688f (patch) | |
tree | 46e751a9858b40e1b525fd4263b6667c9c130a37 | |
parent | 2d95b92582166f711e05c973f3e22950bbce6b2f (diff) | |
download | bread-board-declare-946f6cd5f443b278239ec098bf4afda7c226688f.tar.gz bread-board-declare-946f6cd5f443b278239ec098bf4afda7c226688f.zip |
we want unknown stuff to become parameters here
-rw-r--r-- | lib/Bread/Board/Declare/Role/Object.pm | 1 | ||||
-rw-r--r-- | t/infer.t | 20 |
2 files changed, 18 insertions, 3 deletions
diff --git a/lib/Bread/Board/Declare/Role/Object.pm b/lib/Bread/Board/Declare/Role/Object.pm index 34fbf3e..de699e9 100644 --- a/lib/Bread/Board/Declare/Role/Object.pm +++ b/lib/Bread/Board/Declare/Role/Object.pm @@ -36,6 +36,7 @@ after BUILD => sub { my $inferred = Bread::Board::Service::Inferred->new( current_container => $self, service => $service->clone, + infer_params => 1, )->infer_service($service->class, \%seen); $self->add_service($inferred); @@ -104,10 +104,24 @@ use Test::Fatal; } { + my $c; + is(exception { $c = My::Container2->new }, undef, + "no error when not everything can be inferred"); like( - exception { My::Container2->new }, - qr/^Only class types, role types, or subtypes of Object can be inferred\. I don't know what to do with type \(Str\)/, - "correct error when not everything can be inferred" + exception { $c->baz }, + qr/Mandatory parameter 'thing' missing/, + "error when resolving a service with unfulfilled parameters" + ); + is( + exception { + my $baz = $c->resolve( + service => 'baz', + parameters => { thing => "THING" }, + ); + is($baz->thing, 'THING', "parameter provided correctly"); + }, + undef, + "no errors when parameters are given" ); } |