9 use Moose::Meta::Role::Application::RoleSummation;
10 use Moose::Meta::Role::Composite;
16 override foo => sub { 'Role::Foo::foo' };
21 override bar => sub { 'Role::Bar::bar' };
23 package Role::FooConflict;
26 override foo => sub { 'Role::FooConflict::foo' };
28 package Role::FooMethodConflict;
31 sub foo { 'Role::FooConflict::foo' }
33 package Role::BarMethodConflict;
36 sub bar { 'Role::BarConflict::bar' }
39 # test simple overrides
41 my $c = Moose::Meta::Role::Composite->new(
47 isa_ok($c, 'Moose::Meta::Role::Composite');
49 is($c->name, 'Role::Foo|Role::Bar', '... got the composite role name');
52 Moose::Meta::Role::Application::RoleSummation->new->apply($c);
53 }, undef, '... this lives ok' );
56 [ sort $c->get_method_modifier_list('override') ],
58 '... got the right list of methods'
62 # test simple overrides w/ conflicts
64 Moose::Meta::Role::Application::RoleSummation->new->apply(
65 Moose::Meta::Role::Composite->new(
68 Role::FooConflict->meta,
72 }, undef, '... this fails as expected' );
74 # test simple overrides w/ conflicts
76 Moose::Meta::Role::Application::RoleSummation->new->apply(
77 Moose::Meta::Role::Composite->new(
80 Role::FooMethodConflict->meta,
84 }, undef, '... this fails as expected' );
87 # test simple overrides w/ conflicts
89 Moose::Meta::Role::Application::RoleSummation->new->apply(
90 Moose::Meta::Role::Composite->new(
94 Role::FooConflict->meta,
98 }, undef, '... this fails as expected' );
101 # test simple overrides w/ conflicts
103 Moose::Meta::Role::Application::RoleSummation->new->apply(
104 Moose::Meta::Role::Composite->new(
108 Role::FooMethodConflict->meta,
112 }, undef, '... this fails as expected' );