Commit | Line | Data |
60ad2cb7 |
1 | #!/usr/bin/perl |
fde8e43f |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
60ad2cb7 |
5 | |
6 | use strict; |
7 | use warnings; |
8 | |
fde8e43f |
9 | use Test::More; |
60ad2cb7 |
10 | use Test::Exception; |
11 | |
12 | { |
13 | package Class; |
14 | use Mouse; |
15 | |
16 | package Foo; |
17 | use Mouse::Role; |
18 | sub foo_role_applied { 1 } |
19 | |
20 | package Conflicts::With::Foo; |
21 | use Mouse::Role; |
22 | sub foo_role_applied { 0 } |
23 | |
24 | package Not::A::Role; |
25 | sub lol_wut { 42 } |
26 | } |
27 | |
28 | my $new_class; |
29 | |
30 | lives_ok { |
31 | $new_class = Mouse::Meta::Class->create( |
32 | 'Class::WithFoo', |
33 | superclasses => ['Class'], |
34 | roles => ['Foo'], |
35 | ); |
36 | } 'creating lives'; |
37 | ok $new_class; |
38 | |
39 | my $with_foo = Class::WithFoo->new; |
40 | |
41 | ok $with_foo->foo_role_applied; |
42 | isa_ok $with_foo, 'Class', '$with_foo'; |
43 | |
44 | throws_ok { |
45 | Mouse::Meta::Class->create( |
46 | 'Made::Of::Fail', |
47 | superclasses => ['Class'], |
48 | roles => 'Foo', # "oops" |
49 | ); |
50 | } qr/You must pass an ARRAY ref of roles/; |
51 | |
fde8e43f |
52 | ok !Made::Of::Fail->isa('UNIVERSAL'), "did not create Made::Of::Fail"; |
60ad2cb7 |
53 | |
54 | dies_ok { |
55 | Mouse::Meta::Class->create( |
56 | 'Continuing::To::Fail', |
57 | superclasses => ['Class'], |
58 | roles => ['Foo', 'Conflicts::With::Foo'], |
59 | ); |
60 | } 'conflicting roles == death'; |
61 | |
62 | # XXX: Continuing::To::Fail gets created anyway |
63 | |
fde8e43f |
64 | done_testing; |