Some fixes and test improvements for roles
[gitmo/Mouse.git] / t / 402-basic-role-application.t
index 89e2aee..1191d03 100644 (file)
@@ -1,17 +1,22 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 1;
+use Test::More tests => 5;
+use Test::Exception;
 
 do {
     package Role;
     use Mouse::Role;
 
-    has 'attr';
+    has 'attr' => (
+        default => 'Role',
+    );
 
     no Mouse::Role;
 };
 
+is_deeply(Role->meta->get_attribute('attr'), {default => 'Role'});
+
 do {
     package Class;
     use Mouse;
@@ -21,4 +26,28 @@ do {
 };
 
 ok(Class->meta->has_attribute('attr'), "role application added the attribute");
+is(Class->meta->get_attribute('attr')->default, 'Role');
+
+do {
+    package Role2;
+    use Mouse::Role;
+
+    has 'attr' => (
+        default => 'Role2',
+    );
+
+    no Mouse::Role;
+};
+
+lives_ok {
+    package Class2;
+    use Mouse;
+    with 'Role';
+    with 'Role2';
+};
+
+TODO: {
+    local $TODO = "Moose prefers first definition, Mouse the last";
+    is(Class2->meta->get_attribute('attr')->default, 'Role');
+};