lib/Moose/Meta/Attribute/Native/Trait.pm: factor out some of the namespace resolution...
[gitmo/Moose.git] / t / immutable / immutable_constructor_error.t
CommitLineData
93e98578 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
a28e50e4 6use Test::More;
b10dde3a 7use Test::Fatal;
93e98578 8
7ff56534 9
93e98578 10=pod
11
12This tests to make sure that we provide the same error messages from
13an immutable constructor as is provided by a non-immutable
14constructor.
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
27my $scalar = 1;
b10dde3a 28like( exception { Foo->new($scalar) }, qr/\QSingle parameters to new() must be a HASH ref/, 'Non-ref provided to immutable constructor gives useful error message' );
29like( exception { Foo->new(\$scalar) }, qr/\QSingle parameters to new() must be a HASH ref/, 'Scalar ref provided to immutable constructor gives useful error message' );
30like( exception { Foo->new(undef) }, qr/\QSingle parameters to new() must be a HASH ref/, 'undef provided to immutable constructor gives useful error message' );
93e98578 31
a28e50e4 32done_testing;