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;
32 with 'MyItem::Role::Wearable';
34 method slot => sub { $p->slot };
39 package MyItem::Helmet;
41 with 'MyItem::Role::Equippable' => {
49 with 'MyItem::Role::Equippable' => {
54 can_ok('MyItem::Helmet', qw/is_worn equip remove slot/);
55 can_ok('MyItem::Belt', qw/is_worn equip remove slot/);
57 my $visored = MyItem::Helmet->new(is_worn => 1);
58 ok($visored->is_worn);
59 is($visored->slot, 'head');
61 my $utility = MyItem::Belt->new;
62 ok(!$utility->is_worn);
63 is($utility->slot, 'waist');