Commit | Line | Data |
29cb82b7 |
1 | #!perl |
2 | use strict; |
3 | use warnings; |
4 | |
5 | use Test::More; |
6 | use Test::Exception; |
7 | |
8 | { |
9 | package MyClass; |
10 | use Mouse; |
11 | |
12 | has foo => ( |
13 | is => 'rw', |
14 | ); |
15 | |
16 | has bar => ( |
17 | is => 'rw', |
18 | init_arg => undef, |
19 | ); |
20 | |
21 | __PACKAGE__->meta->make_immutable(strict_constructor => 1); |
22 | } |
23 | |
24 | lives_ok { |
25 | MyClass->new(foo => 1); |
26 | }; |
27 | |
28 | throws_ok { |
29 | MyClass->new(foo => 1, hoge => 42); |
30 | } qr/\b hoge \b/xms; |
31 | |
32 | throws_ok { |
33 | MyClass->new(foo => 1, bar => 42); |
34 | } qr/\b bar \b/xms, "init_arg => undef"; |
35 | |
36 | |
37 | throws_ok { |
38 | MyClass->new(aaa => 1, bbb => 2, ccc => 3); |
39 | } qr/\b aaa \b/xms; |
40 | |
41 | throws_ok { |
42 | MyClass->new(aaa => 1, bbb => 2, ccc => 3); |
43 | } qr/\b bbb \b/xms; |
44 | |
45 | throws_ok { |
46 | MyClass->new(aaa => 1, bbb => 2, ccc => 3); |
47 | } qr/\b ccc \b/xms; |
48 | |
49 | done_testing; |