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;
10 $TODO = q{Mouse is not yet completed};
13 use Mouse::Meta::Role::Application;
14 use Mouse::Meta::Role::Composite;
23 package Role::ExcludesFoo;
27 package Role::DoesExcludesFoo;
29 with 'Role::ExcludesFoo';
31 package Role::DoesFoo;
36 ok(Role::ExcludesFoo->meta->excludes_role('Role::Foo'), '... got the right exclusions');
37 ok(Role::DoesExcludesFoo->meta->excludes_role('Role::Foo'), '... got the right exclusions');
39 # test simple exclusion
41 Mouse::Meta::Role::Application->new->apply(
42 Mouse::Meta::Role::Composite->new(
45 Role::ExcludesFoo->meta,
49 } '... this fails as expected';
53 my $c = Mouse::Meta::Role::Composite->new(
59 isa_ok($c, 'Mouse::Meta::Role::Composite');
61 is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name');
64 Mouse::Meta::Role::Application->new->apply($c);
65 } '... this lives as expected';
68 # test no conflicts w/exclusion
70 my $c = Mouse::Meta::Role::Composite->new(
73 Role::ExcludesFoo->meta,
76 isa_ok($c, 'Mouse::Meta::Role::Composite');
78 is($c->name, 'Role::Bar|Role::ExcludesFoo', '... got the composite role name');
81 Mouse::Meta::Role::Application->new->apply($c);
82 } '... this lives as expected';
84 is_deeply([$c->get_excluded_roles_list], ['Role::Foo'], '... has excluded roles');
88 # test conflict with an "inherited" exclusion
90 Mouse::Meta::Role::Application->new->apply(
91 Mouse::Meta::Role::Composite->new(
94 Role::DoesExcludesFoo->meta,
99 } '... this fails as expected';
101 # test conflict with an "inherited" exclusion of an "inherited" role
103 Mouse::Meta::Role::Application->new->apply(
104 Mouse::Meta::Role::Composite->new(
107 Role::DoesExcludesFoo->meta,
111 } '... this fails as expected';