Bread-Board-Declare

 view release on metacpan or  search on metacpan

t/infer.t  view on Meta::CPAN

#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;

{
    package Foo;
    use Moose;

    has data => (
        is      => 'ro',
        isa     => 'Str',
        default => 'FOO',
    );
}

{
    package Bar;
    use Moose;
}

{
    package Baz;
    use Moose;

    has foo => (
        is       => 'ro',
        isa      => 'Foo',
        required => 1,
    );

    has bar => (
        is       => 'ro',
        isa      => 'Bar',
        required => 1,
    );

    has thing => (
        is  => 'ro',
        isa => 'Str',
    );
}

{
    package My::Container;
    use Moose;
    use Bread::Board::Declare;

    has baz => (
        is    => 'ro',
        isa   => 'Baz',
        infer => 1,
    );

    has baz_no_infer => (
        is  => 'ro',
        isa => 'Baz',
    );
}

{
    my $c = My::Container->new;
    isa_ok($c->baz, 'Baz');
    isa_ok($c->baz->foo, 'Foo');



( run in 0.816 second using v1.01-cache-2.11-cpan-54e63673c56 )