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