4 use Test::More tests => 6;
7 package MyItem::Role::Wearable;
8 use MooseX::Role::Parameterized;
10 parameter is_worn_default => (
21 default => $p->is_worn_default,
24 method equip => sub { shift->is_worn(1) };
25 method remove => sub { shift->is_worn(0) };
30 package MyItem::Role::Equippable;
31 use MooseX::Role::Parameterized;
38 # XXX: UGH! We need some way of making this work I think..
39 parameter is_worn_default => (
48 with 'MyItem::Role::Wearable' => {
49 is_worn_default => $p->is_worn_default,
52 method slot => sub { $p->slot };
57 package MyItem::Helmet;
59 with 'MyItem::Role::Equippable' => {
68 with 'MyItem::Role::Equippable' => {
74 can_ok('MyItem::Helmet', qw/is_worn equip remove slot/);
75 can_ok('MyItem::Belt', qw/is_worn equip remove slot/);
77 my $feathered = MyItem::Helmet->new;
78 ok(!$feathered->is_worn, "default for helmet is not worn");
79 is($feathered->slot, 'head');
81 my $chastity = MyItem::Belt->new;
82 ok($chastity->is_worn, "default for belt is worn");
83 is($chastity->slot, 'waist');