Remove our (now broken) dzil GatherDir subclass
[gitmo/Moose.git] / t / moose_util / moose_util_does_role.t
index 26c1176..1be221d 100644 (file)
@@ -5,9 +5,7 @@ use warnings;
 
 use Test::More;
 
-BEGIN {
-    use_ok('Moose::Util', ':all');
-}
+use Moose::Util ':all';
 
 {
   package Foo;
@@ -43,6 +41,18 @@ BEGIN {
   with 'Foo';
 }
 
+{
+  package DoesMethod;
+  use Moose;
+
+  sub does {
+    my $self = shift;
+    my ($role) = @_;
+    return 1 if $role eq 'Something::Else';
+    return $self->SUPER::does(@_);
+  }
+}
+
 # Classes
 
 ok(does_role('Bar', 'Foo'), '... Bar does Foo');
@@ -69,14 +79,16 @@ ok(!does_role(1,'Foo'), '... 1 doesnt do Foo');
 
 ok(!does_role('Quux', 'Foo'), '... Quux doesnt do Foo (does not die tho)');
 
-# TODO: make the below work, maybe?
+# overriding the does method works properly
+
+ok(does_role('DoesMethod', 'Something::Else'), '... can override the does method');
 
 # Self
 
-#ok(does_role('Foo', 'Foo'), '... Foo does do Foo');
+ok(does_role('Foo', 'Foo'), '... Foo does do Foo');
 
 # sub-Roles
 
-#ok(does_role('Foo::Foo', 'Foo'), '... Foo::Foo does do Foo');
+ok(does_role('Foo::Foo', 'Foo'), '... Foo::Foo does do Foo');
 
 done_testing;