Make sure that required/excludes don't explode
[gitmo/Mouse.git] / t / 400-define-role.t
index 4c27de0..0b3da45 100644 (file)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 2;
+use Test::More tests => 7;
 use Test::Exception;
 
 lives_ok {
@@ -16,5 +16,61 @@ throws_ok {
     use Mouse::Role;
 
     extends 'Role::Parent';
-} qr/Mouse::Role does not currently support 'extends'/;
+
+    no Mouse::Role;
+} qr/Role does not currently support 'extends'/;
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    sub foo {}
+
+    no Mouse::Role;
+};
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    before foo => sub {};
+    after foo  => sub {};
+    around foo => sub {};
+
+    no Mouse::Role;
+};
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    has 'foo';
+
+    no Mouse::Role;
+};
+
+do {
+    package Other::Role;
+    use Mouse::Role;
+    no Mouse::Role;
+};
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    with 'Other::Role';
+
+    no Mouse::Role;
+};
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    requires 'required';
+    excludes 'excluded';
+
+    no Mouse::Role;
+};