finish the bare_attribute merge that I somehow screwed up
[gitmo/Moose.git] / t / 020_attributes / 024_attribute_traits_parameterized.t
CommitLineData
a73f0dc7 1#!/usr/bin/env perl
2use strict;
3use warnings;
48ee5dc5 4use Test::More tests => 4;
a73f0dc7 5
6{
7 package My::Attribute::Trait;
8 use Moose::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 Moose;
19
20 has foo => (
21 traits => [
22 'My::Attribute::Trait' => {
23 alias => {
24 reversed_name => 'eman',
25 },
26 },
27 ],
ccd4cff9 28 is => 'bare',
a73f0dc7 29 );
147c4844 30}
31
32{
33 package My::Other::Class;
34 use Moose;
a73f0dc7 35
147c4844 36 has foo => (
37 traits => [
38 'My::Attribute::Trait' => {
39 alias => {
40 reversed_name => 'reversed',
41 },
42 },
43 ],
ccd4cff9 44 is => 'bare',
147c4844 45 );
a73f0dc7 46}
47
48my $attr = My::Class->meta->get_attribute('foo');
49is($attr->eman, 'oof', 'the aliased method is in the attribute');
147c4844 50ok(!$attr->can('reversed'), "the method was not installed under the other class' alias");
51
52my $other_attr = My::Other::Class->meta->get_attribute('foo');
53is($other_attr->reversed, 'oof', 'the aliased method is in the attribute');
147c4844 54ok(!$other_attr->can('enam'), "the method was not installed under the other class' alias");
a73f0dc7 55