diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-06-14 16:04:36 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-06-14 16:04:36 -0500 |
commit | 36ea288cc78dedaadd1d3b38331489646be26626 (patch) | |
tree | 4e2c123e9a1b0d8fe50036b03ab17af7850988ba /t/circular-dependency.t | |
parent | 65028d365fcfa1f28b0f0e85e8443b3b1c9dad34 (diff) | |
download | bread-board-declare-36ea288cc78dedaadd1d3b38331489646be26626.tar.gz bread-board-declare-36ea288cc78dedaadd1d3b38331489646be26626.zip |
remove test numbers
Diffstat (limited to 't/circular-dependency.t')
-rw-r--r-- | t/circular-dependency.t | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/t/circular-dependency.t b/t/circular-dependency.t new file mode 100644 index 0000000..28431c9 --- /dev/null +++ b/t/circular-dependency.t @@ -0,0 +1,59 @@ +#!/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) = @_; + Foo->new(bar => $s->param('bar')); + }, + lifecycle => 'Singleton', + dependencies => ['bar'], + ); + has bar => ( + is => 'ro', + isa => 'Bar', + block => sub { + my ($s, $self) = @_; + 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(); |