Commit | Line | Data |
67199842 |
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; |
67199842 |
5 | |
6 | use strict; |
7 | use warnings; |
8 | |
fde8e43f |
9 | use Test::More; |
10 | $TODO = q{Mouse is not yet completed}; |
67199842 |
11 | use Test::Exception; |
12 | |
fde8e43f |
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 | package Role::Bar; |
21 | use Mouse::Role; |
22 | |
23 | package Role::Baz; |
6cfa1e5e |
24 | use Mouse::Role; |
25 | |
67199842 |
26 | package Role::Gorch; |
6cfa1e5e |
27 | use Mouse::Role; |
67199842 |
28 | } |
29 | |
30 | { |
31 | my $c = Mouse::Meta::Role::Composite->new( |
32 | roles => [ |
33 | Role::Foo->meta, |
34 | Role::Bar->meta, |
6cfa1e5e |
35 | Role::Baz->meta, |
67199842 |
36 | ] |
37 | ); |
38 | isa_ok($c, 'Mouse::Meta::Role::Composite'); |
39 | |
40 | is($c->name, 'Role::Foo|Role::Bar|Role::Baz', '... got the composite role name'); |
41 | |
42 | is_deeply($c->get_roles, [ |
43 | Role::Foo->meta, |
44 | Role::Bar->meta, |
6cfa1e5e |
45 | Role::Baz->meta, |
67199842 |
46 | ], '... got the right roles'); |
6cfa1e5e |
47 | |
67199842 |
48 | ok($c->does_role($_), '... our composite does the role ' . $_) |
49 | for qw( |
50 | Role::Foo |
51 | Role::Bar |
6cfa1e5e |
52 | Role::Baz |
67199842 |
53 | ); |
6cfa1e5e |
54 | |
67199842 |
55 | lives_ok { |
fde8e43f |
56 | Mouse::Meta::Role::Application->new->apply($c); |
6cfa1e5e |
57 | } '... this composed okay'; |
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'); |
68 | |
69 | is($c2->name, 'Role::Foo|Role::Bar|Role::Baz|Role::Gorch', '... got the composite role name'); |
70 | |
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 | } |
fde8e43f |
85 | |
86 | done_testing; |