#!perl -T use Test::More tests => 10; use lib qw(t/lib); use TestPie; { package Foo; use strict; use warnings; use Test::More; use MooseX::Recipe { class => q{Pie}, roles => [q{Apple}] }; sub test { ok(Pie->does(qw(Apple)), q{Pie does apple}); ok(!Pie->does(qw(Pear)), q{Pie does not pear}); ok(!Pie->does(qw(Blackberry)), q{Pie does not blackberry}); my $obj = Pie->new(); isa_ok($obj, qw(Pie)); is_deeply($obj->ingredients(), [qw(apples)], q{Pie contains apples}); } } { package Bar; use strict; use warnings; use Test::More; use MooseX::Recipe { class => q{Pie}, roles => [qw(Apple Pear Blackberry)] }; sub test { ok(Pie->does(qw(Apple)), q{Pie does apple}); ok(Pie->does(qw(Pear)), q{Pie does pear}); ok(Pie->does(qw(Blackberry)), q{Pie does Blackberry}); my $obj = Pie->new(); isa_ok($obj, q{Pie}); is_deeply($obj->ingredients(), [qw(apples pears blackberries)], q{Pie contains apples}); } } for my $class (qw(Foo Bar)){ $class->test(); }