Use applied_attribute metarole with Moose 1.9900+
[gitmo/MooseX-SemiAffordanceAccessor.git] / t / role.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 use Moose ();
7
8 plan skip_all => 'This test requires Moose 1.9900+'
9     unless $Moose::VERSION ge '1.9900';
10
11 {
12     package Role::SAA;
13
14     use Moose::Role;
15     use MooseX::SemiAffordanceAccessor;
16
17     has 'foo'  => ( is => 'rw' );
18     has '_bar' => ( is => 'rw' );
19 }
20
21 {
22     package Class;
23
24     use Moose;
25
26     with 'Role::SAA';
27
28     has 'thing'    => ( is => 'rw' );
29     has '_private' => ( is => 'rw' );
30 }
31
32 can_ok( 'Class', 'thing' );
33 ok( ! Class->can('set_thing') );
34 can_ok( 'Class', '_private' );
35 ok( ! Class->can('_set_private') );
36
37 can_ok( 'Class', qw( foo set_foo _bar _set_bar ) );
38
39 done_testing();