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; |
67199842 |
10 | use Test::Exception; |
11 | |
c47cf415 |
12 | use Mouse::Meta::Role::Application; |
67199842 |
13 | use Mouse::Meta::Role::Composite; |
14 | |
15 | { |
16 | package Role::Foo; |
17 | use Mouse::Role; |
6cfa1e5e |
18 | |
67199842 |
19 | package Role::Bar; |
20 | use Mouse::Role; |
21 | |
22 | package Role::Baz; |
6cfa1e5e |
23 | use Mouse::Role; |
24 | |
67199842 |
25 | package Role::Gorch; |
6cfa1e5e |
26 | use Mouse::Role; |
67199842 |
27 | } |
28 | |
29 | { |
30 | my $c = Mouse::Meta::Role::Composite->new( |
31 | roles => [ |
32 | Role::Foo->meta, |
33 | Role::Bar->meta, |
6cfa1e5e |
34 | Role::Baz->meta, |
67199842 |
35 | ] |
36 | ); |
37 | isa_ok($c, 'Mouse::Meta::Role::Composite'); |
92d87891 |
38 | { local $TODO = 'M::M::R::Compisite name'; |
67199842 |
39 | is($c->name, 'Role::Foo|Role::Bar|Role::Baz', '... got the composite role name'); |
92d87891 |
40 | } |
67199842 |
41 | is_deeply($c->get_roles, [ |
42 | Role::Foo->meta, |
43 | Role::Bar->meta, |
6cfa1e5e |
44 | Role::Baz->meta, |
67199842 |
45 | ], '... got the right roles'); |
6cfa1e5e |
46 | |
67199842 |
47 | ok($c->does_role($_), '... our composite does the role ' . $_) |
48 | for qw( |
49 | Role::Foo |
50 | Role::Bar |
6cfa1e5e |
51 | Role::Baz |
67199842 |
52 | ); |
92d87891 |
53 | { local $TODO = 'cannot apply a composite role directly'; |
67199842 |
54 | lives_ok { |
23320fd8 |
55 | Mouse::Meta::Role::Application::RoleSummation->new->apply($c); |
6cfa1e5e |
56 | } '... this composed okay'; |
92d87891 |
57 | } |
6cfa1e5e |
58 | |
67199842 |
59 | ##... now nest 'em |
6cfa1e5e |
60 | { |
67199842 |
61 | my $c2 = Mouse::Meta::Role::Composite->new( |
62 | roles => [ |
63 | $c, |
64 | Role::Gorch->meta, |
65 | ] |
66 | ); |
67 | isa_ok($c2, 'Mouse::Meta::Role::Composite'); |
92d87891 |
68 | { local $TODO = 'name'; |
67199842 |
69 | is($c2->name, 'Role::Foo|Role::Bar|Role::Baz|Role::Gorch', '... got the composite role name'); |
92d87891 |
70 | } |
67199842 |
71 | is_deeply($c2->get_roles, [ |
72 | $c, |
6cfa1e5e |
73 | Role::Gorch->meta, |
67199842 |
74 | ], '... got the right roles'); |
75 | |
76 | ok($c2->does_role($_), '... our composite does the role ' . $_) |
77 | for qw( |
78 | Role::Foo |
79 | Role::Bar |
6cfa1e5e |
80 | Role::Baz |
81 | Role::Gorch |
82 | ); |
67199842 |
83 | } |
84 | } |
c47cf415 |
85 | |
86 | done_testing; |