Add some tests
[gitmo/Mouse.git] / lib / Mouse / Object.pm
index a641129..8aa22b5 100644 (file)
@@ -2,16 +2,16 @@ package Mouse::Object;
 use strict;
 use warnings;
 
-use Carp 'confess';
+use Mouse::Util;
 
 sub new {
     my $class = shift;
 
-    confess('Cannot call new() on an instance') if ref $class;
+    $class->throw_error('Cannot call new() on an instance') if ref $class;
 
     my $args = $class->BUILDARGS(@_);
 
-    my $instance = Mouse::Meta::Class->initialize($class)->new_object($params);
+    my $instance = Mouse::Meta::Class->initialize($class)->new_object($args);
     $instance->BUILDALL($args);
     return $instance;
 }
@@ -21,7 +21,7 @@ sub BUILDARGS {
 
     if (scalar @_ == 1) {
         (ref($_[0]) eq 'HASH')
-            || confess "Single parameters to new() must be a HASH ref";
+            || $class->meta->throw_error("Single parameters to new() must be a HASH ref");
         return {%{$_[0]}};
     }
     else {
@@ -71,7 +71,7 @@ sub dump {
 
     require 'Data/Dumper.pm'; # we don't want to create its namespace
     my $dd = Data::Dumper->new([$self]);
-    $dd->Maxdepth($maxdepth || 1);
+    $dd->Maxdepth(defined($maxdepth) ? $maxdepth : 1);
     return $dd->Dump();
 }
 
@@ -79,7 +79,7 @@ sub dump {
 sub does {
     my ($self, $role_name) = @_;
     (defined $role_name)
-        || confess "You must supply a role name to does()";
+        || $self->meta->throw_error("You must supply a role name to does()");
 
     return $self->meta->does_role($role_name);
 };