Bread-Board
view release on metacpan or search on metacpan
t/005_alias.t view on Meta::CPAN
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Bread::Board;
{
package Some::Class;
use Moose;
has foo => (
is => 'ro',
isa => 'Str',
);
}
{
my $c = container 'MyApp' => as {
service 'foo' => 'FOO';
service 'bar' => (
block => sub { 'BAR' },
);
service 'baz' => (
class => 'Some::Class',
);
alias 'foo_alias' => 'foo';
alias 'bar_alias' => 'bar';
alias 'baz_alias' => 'baz';
};
is($c->resolve(service => 'foo_alias'), 'FOO', "literal aliases work");
is($c->resolve(service => 'bar_alias'), 'BAR', "block aliases work");
isa_ok($c->resolve(service => 'baz_alias'), 'Some::Class');
is($c->fetch('foo_alias')->name, 'foo',
"fetch on aliases returns the underlying service");
}
{
my $c = container 'MyApp' => as {
service 'foo' => 'FOO';
service 'bar' => (
block => sub {
my $s = shift;
return $s->param('foo') . 'BAR';
},
dependencies => ['foo'],
);
service 'baz' => (
class => 'Some::Class',
dependencies => ['foo'],
);
alias 'bar_alias' => 'bar';
alias 'baz_alias' => 'baz';
};
is($c->resolve(service => 'bar_alias'), 'FOOBAR',
"block aliases with deps work");
is($c->resolve(service => 'baz_alias')->foo, 'FOO',
"constructor aliases with deps work");
}
( run in 1.235 second using v1.01-cache-2.11-cpan-54e63673c56 )