use strict;
use warnings;
use Test::More tests => 6;
{
package Animal;
use Mouse::Role;
sub eat { 'delicious' }
}
{
package Cat;
use Mouse::Role;
with 'Animal', {
-alias => { eat => 'drink' },
-excludes => [qw(eat)],
};
sub eat { 'good!' }
}
{
package Tama;
use Mouse;
with 'Cat';
}
{
package Dog;
use Mouse;
with 'Animal', {
-alias => { eat => 'drink' },
};
}
ok(Dog->can('eat'));
ok(Dog->can('drink'));
my $d = Dog->new();
is($d->drink(), 'delicious');
is($d->eat(), 'delicious');
my $t = Tama->new;
is $t->drink(), 'delicious';
is $t->eat(), 'good!';