package SAA;
- use MooseX::SemiAffordanceAccessor;
- use Moose;
-
- has 'thing' => ( is => 'rw' );
- has '_private' => ( is => 'rw' );
-}
-
-{
-
- package SAA2;
-
- # Make sure load order doesn't matter
use Moose;
use MooseX::SemiAffordanceAccessor;
ok( SAA->can('_private'), 'SAA->_private() exists' );
ok( SAA->can('_set_private'), 'SAA->_set_private() exists' );
-ok( SAA2->can('thing'), 'SAA2->thing() exists' );
-ok( SAA2->can('set_thing'), 'SAA2->set_thing() exists' );
-ok( SAA2->can('_private'), 'SAA2->_private() exists' );
-ok( SAA2->can('_set_private'), 'SAA2->_set_private() exists' );
-
ok( SAA3->can('ro'), 'SAA3->ro exists' );
ok( !SAA3->can('set_ro'), 'SAA3->set_ro does not exist' );
ok( SAA3->can('thing'), 'SAA3->thing exists' );
ok( !SAA4->can('bare'), 'SAA4->bare does not exist' );
ok( !SAA4->can('set_bare'), 'SAA4->set_bare does not exist' );
+{
+ package SAA::Role;
+ use Moose::Role;
+ use MooseX::SemiAffordanceAccessor;
+ has foo => (is => 'rw');
+}
+
+{
+ package SAA::WithRole;
+ use Moose;
+ with 'SAA::Role';
+}
+
+ok( SAA::WithRole->can('foo'), "roles work" );
+ok( SAA::WithRole->can('set_foo'), "roles work" );
+
done_testing();