Bread-Board
view release on metacpan or search on metacpan
t/152_sugar_service_inheritance.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Bread::Board;
{
package Thing;
use Moose;
has foo => (is => 'ro', required => 1);
has moo => (is => 'ro', required => 1);
no Moose;
__PACKAGE__->meta->make_immutable;
}
{
package TestThing;
use Moose;
extends 'Thing';
has bar => (is => 'ro', required => 1);
has kooh => (is => 'ro', required => 1);
no Moose;
__PACKAGE__->meta->make_immutable;
}
{
my $c = container 'MyApp' => as {
service foo => 42;
service thing => (
class => 'Thing',
dependencies => [depends_on('foo')],
parameters => {
moo => { isa => 'Int' },
},
);
};
{
my $t = $c->resolve(
service => 'thing',
parameters => {
moo => 123,
},
);
isa_ok $t, 'Thing';
is $t->foo, 42, '... and has a foo literal';
is $t->moo, 123, '... and has a moo literal';
}
container $c => as {
service bar => 23;
service '+thing' => (
class => 'TestThing',
( run in 1.549 second using v1.01-cache-2.11-cpan-54e63673c56 )