f7b68ea55f7f77875c905d6455da67b79af80e82
[gitmo/MooseX-Role-Parameterized.git] / t / 016-trait.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More skip_all => "Moose doesn't yet support traits with parameters";
5 #use Test::More tests => 2;
6
7 do {
8     package MyTrait::Label;
9     use MooseX::Role::Parameterized;
10
11     parameter default => (
12         is  => 'rw',
13         isa => 'Str',
14     );
15
16     role {
17         my $p = shift;
18
19         has label => (
20             is      => 'rw',
21             isa     => 'Str',
22             default => $p->default,
23         );
24     };
25 };
26
27 do {
28     package MyClass::LabeledURL;
29     use Moose;
30
31     has url => (
32         traits => [
33             'MyTrait::Label' => { default => 'yay' },
34         ],
35         is  => 'rw',
36         isa => 'Str',
37     );
38 };
39
40 do {
41     package MyClass::LabeledURL::Redux;
42     use Moose;
43     extends 'MyClass::LabeledURL';
44
45     has '+url' => (
46         label => 'overridden',
47     );
48 };
49
50 is(MyClass::LabeledURL->meta->get_attribute('url')->label, 'yay');
51 is(MyClass::LabeledURL::Redux->meta->get_attribute('url')->label, 'overridden');
52