remove trailing whitespace
[gitmo/Moose.git] / lib / Test / Moose.pm
index 58b7e95..d98b6c3 100644 (file)
@@ -6,12 +6,15 @@ use warnings;
 use Sub::Exporter;
 use Test::Builder;
 
-our $VERSION   = '0.01';
+use Moose::Util 'does_role', 'find_meta';
+
+our $VERSION   = '0.75_01';
+$VERSION = eval $VERSION;
 our $AUTHORITY = 'cpan:STEVAN';
 
 my @exports = qw[
     meta_ok
-    does_ok 
+    does_ok
     has_attribute_ok
 ];
 
@@ -20,58 +23,51 @@ Sub::Exporter::setup_exporter({
     groups  => { default => \@exports }
 });
 
-my $Test = Test::Builder->new;
-
-## some helpers ...
+## the test builder instance ...
 
-sub _get_meta { 
-    return unless $_[0];
-    return Class::MOP::get_metaclass_by_name(ref($_[0]) || $_[0]);
-}
+my $Test = Test::Builder->new;
 
 ## exported functions
 
 sub meta_ok ($;$) {
     my ($class_or_obj, $message) = @_;
-    
+
     $message ||= "The object has a meta";
-    
-    if (_get_meta($class_or_obj)) {
+
+    if (find_meta($class_or_obj)) {
         return $Test->ok(1, $message)
     }
     else {
-        return $Test->ok(0, $message);  
+        return $Test->ok(0, $message);
     }
 }
 
 sub does_ok ($$;$) {
     my ($class_or_obj, $does, $message) = @_;
-    
+
     $message ||= "The object does $does";
-    
-    my $meta = _get_meta($class_or_obj);
-    
-    if ($meta->does_role($does)) {
+
+    if (does_role($class_or_obj, $does)) {
         return $Test->ok(1, $message)
     }
     else {
-        return $Test->ok(0, $message);  
+        return $Test->ok(0, $message);
     }
 }
 
 sub has_attribute_ok ($$;$) {
     my ($class_or_obj, $attr_name, $message) = @_;
-    
+
     $message ||= "The object does has an attribute named $attr_name";
-    
-    my $meta = _get_meta($class_or_obj);    
-    
+
+    my $meta = find_meta($class_or_obj);
+
     if ($meta->find_attribute_by_name($attr_name)) {
         return $Test->ok(1, $message)
     }
     else {
-        return $Test->ok(0, $message);  
-    }    
+        return $Test->ok(0, $message);
+    }
 }
 
 1;
@@ -87,7 +83,7 @@ Test::Moose - Test functions for Moose specific features
 =head1 SYNOPSIS
 
   use Test::More plan => 1;
-  use Test::Moose;  
+  use Test::Moose;
 
   meta_ok($class_or_obj, "... Foo has a ->meta");
   does_ok($class_or_obj, $role, "... Foo does the Baz role");
@@ -95,7 +91,7 @@ Test::Moose - Test functions for Moose specific features
 
 =head1 DESCRIPTION
 
-This module provides some useful test functions for Moose based classes. It 
+This module provides some useful test functions for Moose based classes. It
 is an experimental first release, so comments and suggestions are very welcome.
 
 =head1 EXPORTED FUNCTIONS
@@ -108,12 +104,12 @@ Tests if a class or object has a metaclass.
 
 =item B<does_ok ($class_or_object, $role, ?$message)>
 
-Tests if a class or object does a certain role, similar to what C<isa_ok> 
+Tests if a class or object does a certain role, similar to what C<isa_ok>
 does for the C<isa> method.
 
 =item B<has_attribute_ok($class_or_object, $attr_name, ?$message)>
 
-Tests if a class or object has a certain attribute, similar to what C<can_ok> 
+Tests if a class or object has a certain attribute, similar to what C<can_ok>
 does for the methods.
 
 =back
@@ -150,7 +146,7 @@ does for the methods.
 
 =head1 BUGS
 
-All complex software has bugs lurking in it, and this module is no 
+All complex software has bugs lurking in it, and this module is no
 exception. If you find a bug please either email me, or add the bug
 to cpan-RT.
 
@@ -162,12 +158,12 @@ Stevan Little E<lt>stevan@iinteractive.comE<gt>
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2007 by Infinity Interactive, Inc.
+Copyright 2007-2009 by Infinity Interactive, Inc.
 
 L<http://www.iinteractive.com>
 
 This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself. 
+it under the same terms as Perl itself.
 
 =cut