Resolve skipped tests (for 5.6.2)
[gitmo/Mouse.git] / t / 050_metaclasses / 020_metaclass_parameterized_traits.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4
5 use Test::More tests => 5;
6
7 {
8     package My::Trait;
9     use Mouse::Role;
10
11     sub reversed_name {
12         my $self = shift;
13         scalar reverse $self->name;
14     }
15 }
16
17 {
18     package My::Class;
19     use Mouse -traits => [
20         'My::Trait' => {
21             -alias => {
22                 reversed_name => 'enam',
23             },
24         },
25     ];
26 }
27
28 {
29     package My::Other::Class;
30     use Mouse -traits => [
31         'My::Trait' => {
32             -alias => {
33                 reversed_name => 'reversed',
34             },
35             -excludes => 'reversed_name',
36         },
37     ];
38 }
39
40 my $meta = My::Class->meta;
41 is($meta->enam, 'ssalC::yM', 'parameterized trait applied');
42 ok(!$meta->can('reversed'), "the method was not installed under the other class' alias");
43
44 my $other_meta = My::Other::Class->meta;
45 is($other_meta->reversed, 'ssalC::rehtO::yM', 'parameterized trait applied');
46 ok(!$other_meta->can('enam'), "the method was not installed under the other class' alias");
47 ok(!$other_meta->can('reversed_name'), "the method was not installed under the original name when that was excluded");
48