Mouse::Role supports 'with'
[gitmo/Mouse.git] / t / 400-define-role.t
index 0b3da45..5f130cc 100644 (file)
@@ -1,8 +1,8 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 7;
-use Test::Exception;
+use Test::More tests => 11;
+use Mouse::Util ':test';
 
 lives_ok {
     package Role;
@@ -18,7 +18,7 @@ throws_ok {
     extends 'Role::Parent';
 
     no Mouse::Role;
-} qr/Role does not currently support 'extends'/;
+} qr/Roles do not support 'extends'/;
 
 lives_ok {
     package Role;
@@ -64,13 +64,35 @@ lives_ok {
     no Mouse::Role;
 };
 
-lives_ok {
+throws_ok {
     package Role;
     use Mouse::Role;
 
-    requires 'required';
     excludes 'excluded';
 
     no Mouse::Role;
+} qr/Mouse::Role does not currently support 'excludes'/;
+
+throws_ok {
+    package Role;
+    use Mouse::Role;
+
+    confess "Mouse::Role exports confess";
+
+} qr/^Mouse::Role exports confess/;
+
+lives_ok {
+    package Role;
+    use Mouse::Role;
+
+    my $obj = bless {} => "Impromptu::Class";
+    ::is(blessed($obj), "Impromptu::Class");
 };
 
+throws_ok {
+    package Class;
+    use Mouse;
+
+    with 'Role', 'Other::Role';
+} qr/Mouse::Role only supports 'with' on individual roles at a time/;
+