Cleanup failing tests
[gitmo/Mouse.git] / Moose-t-failing / 030_roles / 020_role_composite.t
1 #!/usr/bin/perl
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;
5
6 use strict;
7 use warnings;
8
9 use Test::More;
10 $TODO = q{Mouse is not yet completed};
11 use Test::Exception;
12
13 use Mouse::Meta::Role::Application;
14 use Mouse::Meta::Role::Composite;
15
16 {
17     package Role::Foo;
18     use Mouse::Role;
19
20     package Role::Bar;
21     use Mouse::Role;
22
23     package Role::Baz;
24     use Mouse::Role;
25
26     package Role::Gorch;
27     use Mouse::Role;
28 }
29
30 {
31     my $c = Mouse::Meta::Role::Composite->new(
32         roles => [
33             Role::Foo->meta,
34             Role::Bar->meta,
35             Role::Baz->meta,
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,
45         Role::Baz->meta,
46     ], '... got the right roles');
47
48     ok($c->does_role($_), '... our composite does the role ' . $_)
49         for qw(
50             Role::Foo
51             Role::Bar
52             Role::Baz
53         );
54
55     lives_ok {
56         Mouse::Meta::Role::Application->new->apply($c);
57     } '... this composed okay';
58
59     ##... now nest 'em
60     {
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,
73             Role::Gorch->meta,
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
80                 Role::Baz
81                 Role::Gorch
82             );
83     }
84 }
85
86 done_testing;