use replace_constructor
[gitmo/MooseX-Role-Parameterized.git] / t / 015-compose-keywords.t
CommitLineData
ff2ccd89 1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Test::More tests => 20;
5
6do {
7 package OtherRole;
8 use Moose::Role;
9};
10
11do {
12 package MyRole;
13 use MooseX::Role::Parameterized;
14
15 requires 'requirement';
16 excludes 'exclusion';
17
18 has attribute => ();
19
20 method meth => sub {};
21 before meth => sub {};
22 after meth => sub {};
23 around meth => sub {};
24
25 sub regular_method {}
26
27 override other_meth => sub { super };
28
29 with 'OtherRole';
30
31 role { }
32};
33
34for my $meta (MyRole->meta, MyRole->meta->generate_role) {
35 ok($meta->has_attribute('attribute'), 'has');
36 ok($meta->has_method('meth'), 'method');
37 ok($meta->has_method('regular_method'), 'sub');
38
39 is($meta->has_before_method_modifiers('meth'), 1, 'before');
40 is($meta->has_after_method_modifiers('meth'), 1, 'after');
41 is($meta->has_around_method_modifiers('meth'), 1, 'around');
42
43 is($meta->has_override_method_modifier('other_meth'), 1, 'override');
44 is($meta->does_role('OtherRole'), 1, 'with');
45
46 ok($meta->requires_method('requirement'), 'requires');
47 ok($meta->excludes_role('exclusion'), 'excludes');
48}
49