Move role tests to a separate file and skip with Moose pre 1.99
Dave Rolsky [Sat, 26 Feb 2011 18:55:49 +0000 (12:55 -0600)]
t/basic.t
t/role.t [new file with mode: 0644]

index 8f6c1ca..c14d332 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -64,21 +64,4 @@ ok( ! PBP3->can('set_thing2'), 'PBP3->set_thing2 does not exist' );
 ok( !PBP4->can('get_bare'), 'is => bare attribute is respected' );
 ok( !PBP4->can('set_bare'), 'is => bare attribute is respected' );
 
-{
-    package PBP::Role;
-    use Moose::Role;
-    use MooseX::FollowPBP;
-    has foo => (is => 'rw');
-}
-
-{
-    package PBP::WithRole;
-    use Moose;
-    with 'PBP::Role';
-}
-
-ok( PBP::WithRole->can('get_foo'), "works in a role" );
-ok( PBP::WithRole->can('set_foo'), "works in a role" );
-ok( !PBP::WithRole->can('foo'), "works in a role" );
-
 done_testing();
diff --git a/t/role.t b/t/role.t
new file mode 100644 (file)
index 0000000..e17868c
--- /dev/null
+++ b/t/role.t
@@ -0,0 +1,39 @@
+use strict;
+use warnings;
+
+use Test::More;
+
+use Moose ();
+
+plan skip_all => 'This test requires Moose 1.9900+'
+    unless $Moose::VERSION ge '1.9900';
+
+{
+    package Role::SAA;
+
+    use Moose::Role;
+    use MooseX::FollowPBP;
+
+    has 'foo'  => ( is => 'rw' );
+    has '_bar' => ( is => 'rw' );
+}
+
+{
+    package Class;
+
+    use Moose;
+
+    with 'Role::SAA';
+
+    has 'thing'    => ( is => 'rw' );
+    has '_private' => ( is => 'rw' );
+}
+
+can_ok( 'Class', 'thing' );
+ok( ! Class->can('set_thing') );
+can_ok( 'Class', '_private' );
+ok( ! Class->can('_set_private') );
+
+can_ok( 'Class', qw( get_foo set_foo _get_bar _set_bar ) );
+
+done_testing();