Revert autogenerated tests. Tests should not changed radically.
[gitmo/Mouse.git] / Moose-t-failing / 030_roles / 025_role_composition_override.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     override foo => sub { 'Role::Foo::foo' };
21
22     package Role::Bar;
23     use Mouse::Role;
24
25     override bar => sub { 'Role::Bar::bar' };
26
27     package Role::FooConflict;
28     use Mouse::Role;
29
30     override foo => sub { 'Role::FooConflict::foo' };
31
32     package Role::FooMethodConflict;
33     use Mouse::Role;
34
35     sub foo { 'Role::FooConflict::foo' }
36
37     package Role::BarMethodConflict;
38     use Mouse::Role;
39
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
53     is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name');
54
55     lives_ok {
56         Mouse::Meta::Role::Application->new->apply($c);
57     } '... this lives ok';
58
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 {
68     Mouse::Meta::Role::Application->new->apply(
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 {
80     Mouse::Meta::Role::Application->new->apply(
81         Mouse::Meta::Role::Composite->new(
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 {
93     Mouse::Meta::Role::Application->new->apply(
94         Mouse::Meta::Role::Composite->new(
95             roles => [
96                 Role::Foo->meta,
97                 Role::Bar->meta,
98                 Role::FooConflict->meta,
99             ]
100         )
101     );
102 } '... this fails as expected';
103
104
105 # test simple overrides w/ conflicts
106 dies_ok {
107     Mouse::Meta::Role::Application->new->apply(
108         Mouse::Meta::Role::Composite->new(
109             roles => [
110                 Role::Foo->meta,
111                 Role::Bar->meta,
112                 Role::FooMethodConflict->meta,
113             ]
114         )
115     );
116 } '... this fails as expected';
117
118 done_testing;