4 use Test::More tests => 6;
7 package MyItem::Role::Wearable;
16 sub equip { shift->is_worn(1) }
17 sub remove { shift->is_worn(0) }
21 package MyItem::Role::Equippable;
22 use MooseX::Role::Parameterized;
33 with 'MyItem::Role::Wearable';
35 method slot => sub { $p->slot };
40 package MyItem::Helmet;
42 with 'MyItem::Role::Equippable' => {
50 with 'MyItem::Role::Equippable' => {
55 can_ok('MyItem::Helmet', qw/is_worn equip remove slot/);
56 can_ok('MyItem::Belt', qw/is_worn equip remove slot/);
58 my $visored = MyItem::Helmet->new(is_worn => 1);
59 ok($visored->is_worn);
60 is($visored->slot, 'head');
62 my $utility = MyItem::Belt->new;
63 ok(!$utility->is_worn);
64 is($utility->slot, 'waist');