sometimes the stash doesn't exist at all
[gitmo/Moose.git] / t / immutable / immutable_constructor_error.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7 use Test::Fatal;
8
9
10 =pod
11
12 This tests to make sure that we provide the same error messages from
13 an immutable constructor as is provided by a non-immutable
14 constructor.
15
16 =cut
17
18 {
19     package Foo;
20     use Moose;
21
22     has 'foo' => (is => 'rw', isa => 'Int');
23
24     Foo->meta->make_immutable(debug => 0);
25 }
26
27 my $scalar = 1;
28 like( exception { Foo->new($scalar) }, qr/\QSingle parameters to new() must be a HASH ref/, 'Non-ref provided to immutable constructor gives useful error message' );
29 like( exception { Foo->new(\$scalar) }, qr/\QSingle parameters to new() must be a HASH ref/, 'Scalar ref provided to immutable constructor gives useful error message' );
30 like( exception { Foo->new(undef) }, qr/\QSingle parameters to new() must be a HASH ref/, 'undef provided to immutable constructor gives useful error message' );
31
32 done_testing;