Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use Test::More;
- use Test::Fatal;
- {
- package Foo;
- use Moose;
- has bar => (
- is => 'rw',
- isa => 'Bar',
- );
- }
- {
- package Bar;
- use Moose;
- has foo => (
- is => 'rw',
- isa => 'Foo',
- weak_ref => 1,
- );
- }
- {
- package MyApp;
- use Moose;
- use Bread::Board::Declare;
- has foo => (
- is => 'ro',
- isa => 'Foo',
- block => sub {
- my ($s, $self) = @_;
- my $foo = Foo->new(bar => $s->param('bar'));
- return $foo;
- },
- lifecycle => 'Singleton',
- dependencies => ['bar'],
- );
- has bar => (
- is => 'ro',
- isa => 'Bar',
- block => sub {
- my ($s, $self) = @_;
- my $bar = Bar->new(foo => $s->param('foo'));
- },
- lifecycle => 'Singleton',
- dependencies => ['foo'],
- );
- }
- is exception { MyApp->new->foo->bar }, undef,
- 'circular block-injection deps should survive';
- done_testing();
Add Comment
Please, Sign In to add comment