Resolve a todo
[gitmo/Mouse.git] / t / 030_roles / 034_create_role.t
CommitLineData
7a50b450 1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Test::More tests => 4;
43408273 5use Mouse::Role ();
7a50b450 6
7my $role = Mouse::Meta::Role->create(
8 'MyItem::Role::Equipment',
9 attributes => {
10 is_worn => {
11 is => 'rw',
12 isa => 'Bool',
13 },
14 },
15 methods => {
16 remove => sub { shift->is_worn(0) },
17 },
18);
19
20my $class = Mouse::Meta::Class->create('MyItem::Armor::Helmet' =>
21 roles => ['MyItem::Role::Equipment'],
22);
23
24my $visored = $class->new_object(is_worn => 0);
25ok(!$visored->is_worn, "attribute, accessor was consumed");
26$visored->is_worn(1);
27ok($visored->is_worn, "accessor was consumed");
28$visored->remove;
29ok(!$visored->is_worn, "method was consumed");
30
31ok(!$role->is_anon_role, "the role is not anonymous");
32