Commit | Line | Data |
67199842 |
1 | #!/usr/bin/perl |
c47cf415 |
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; |
67199842 |
5 | |
6 | use strict; |
7 | use warnings; |
8 | |
c47cf415 |
9 | use Test::More; |
10 | $TODO = q{Mouse is not yet completed}; |
67199842 |
11 | use Test::Exception; |
12 | |
c47cf415 |
13 | use Mouse::Meta::Role::Application; |
67199842 |
14 | use Mouse::Meta::Role::Composite; |
15 | |
16 | { |
17 | package Role::Foo; |
18 | use Mouse::Role; |
6cfa1e5e |
19 | |
67199842 |
20 | override foo => sub { 'Role::Foo::foo' }; |
6cfa1e5e |
21 | |
67199842 |
22 | package Role::Bar; |
23 | use Mouse::Role; |
24 | |
25 | override bar => sub { 'Role::Bar::bar' }; |
6cfa1e5e |
26 | |
67199842 |
27 | package Role::FooConflict; |
6cfa1e5e |
28 | use Mouse::Role; |
29 | |
67199842 |
30 | override foo => sub { 'Role::FooConflict::foo' }; |
6cfa1e5e |
31 | |
67199842 |
32 | package Role::FooMethodConflict; |
6cfa1e5e |
33 | use Mouse::Role; |
34 | |
35 | sub foo { 'Role::FooConflict::foo' } |
36 | |
67199842 |
37 | package Role::BarMethodConflict; |
38 | use Mouse::Role; |
6cfa1e5e |
39 | |
67199842 |
40 | sub bar { 'Role::BarConflict::bar' } |
41 | } |
42 | |
43 | # test simple overrides |
44 | { |
45 | my $c = Mouse::Meta::Role::Composite->new( |
46 | roles => [ |
47 | Role::Foo->meta, |
48 | Role::Bar->meta, |
49 | ] |
50 | ); |
51 | isa_ok($c, 'Mouse::Meta::Role::Composite'); |
52 | |
6cfa1e5e |
53 | is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name'); |
54 | |
67199842 |
55 | lives_ok { |
c47cf415 |
56 | Mouse::Meta::Role::Application->new->apply($c); |
6cfa1e5e |
57 | } '... this lives ok'; |
58 | |
67199842 |
59 | is_deeply( |
60 | [ sort $c->get_method_modifier_list('override') ], |
61 | [ 'bar', 'foo' ], |
62 | '... got the right list of methods' |
63 | ); |
64 | } |
65 | |
66 | # test simple overrides w/ conflicts |
67 | dies_ok { |
c47cf415 |
68 | Mouse::Meta::Role::Application->new->apply( |
67199842 |
69 | Mouse::Meta::Role::Composite->new( |
70 | roles => [ |
71 | Role::Foo->meta, |
72 | Role::FooConflict->meta, |
73 | ] |
74 | ) |
75 | ); |
76 | } '... this fails as expected'; |
77 | |
78 | # test simple overrides w/ conflicts |
79 | dies_ok { |
c47cf415 |
80 | Mouse::Meta::Role::Application->new->apply( |
6cfa1e5e |
81 | Mouse::Meta::Role::Composite->new( |
67199842 |
82 | roles => [ |
83 | Role::Foo->meta, |
84 | Role::FooMethodConflict->meta, |
85 | ] |
86 | ) |
87 | ); |
88 | } '... this fails as expected'; |
89 | |
90 | |
91 | # test simple overrides w/ conflicts |
92 | dies_ok { |
c47cf415 |
93 | Mouse::Meta::Role::Application->new->apply( |
67199842 |
94 | Mouse::Meta::Role::Composite->new( |
95 | roles => [ |
96 | Role::Foo->meta, |
6cfa1e5e |
97 | Role::Bar->meta, |
98 | Role::FooConflict->meta, |
67199842 |
99 | ] |
100 | ) |
101 | ); |
102 | } '... this fails as expected'; |
103 | |
104 | |
105 | # test simple overrides w/ conflicts |
106 | dies_ok { |
c47cf415 |
107 | Mouse::Meta::Role::Application->new->apply( |
6cfa1e5e |
108 | Mouse::Meta::Role::Composite->new( |
67199842 |
109 | roles => [ |
110 | Role::Foo->meta, |
6cfa1e5e |
111 | Role::Bar->meta, |
112 | Role::FooMethodConflict->meta, |
67199842 |
113 | ] |
114 | ) |
115 | ); |
116 | } '... this fails as expected'; |
c47cf415 |
117 | |
118 | done_testing; |