1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7use Test::Fatal;
8
9use Bread::Board;
10
11my $c = container Foo => as {
12    service fez => 123;
13
14    container Bar => ['Baz'] => as {
15        service moo => (
16            block => sub {
17                my ($s) = @_;
18                $s->param('kooh') + $s->param('fez');
19            },
20            dependencies => {
21                kooh => depends_on('Baz/boo'),
22                fez  => depends_on('../fez'),
23            },
24        );
25    };
26
27    container Bif => as {
28        service boo => 42;
29    };
30};
31
32is $c->fetch('Bar')->create(Baz => $c->fetch('Bif'))->resolve(service => 'moo'), 165, 'container works as expected';
33
34my $clone;
35is exception { $clone = $c->clone }, undef, 'cloning the container does not throw an exception';
36
37is $clone->fetch('Bar')->create(Baz => $clone->fetch('Bif'))->resolve(service => 'moo'), 165, 'can do parameterized backref from clone';
38
39done_testing;
40