- inject object constructor when call meta->make_immutable.
[gitmo/Mouse.git] / t / 300_immutable / 008_immutable_constructor_error.t
diff --git a/t/300_immutable/008_immutable_constructor_error.t b/t/300_immutable/008_immutable_constructor_error.t
new file mode 100644 (file)
index 0000000..62d6d3c
--- /dev/null
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+use Test::Exception;
+
+
+
+=pod
+
+This tests to make sure that we provide the same error messages from
+an immutable constructor as is provided by a non-immutable
+constructor.
+
+=cut
+
+{
+    package Foo;
+    use Moose;
+
+    has 'foo' => (is => 'rw', isa => 'Int');
+
+    Foo->meta->make_immutable(debug => 0);
+}
+
+my $scalar = 1;
+throws_ok { Foo->new($scalar) } qr/\QSingle parameters to new() must be a HASH ref/,
+          'Non-ref provided to immutable constructor gives useful error message';
+throws_ok { Foo->new(\$scalar) } qr/\QSingle parameters to new() must be a HASH ref/,
+          'Scalar ref provided to immutable constructor gives useful error message';
+