use strict;
use warnings;
-use Test::More tests => 87; # it's really 124 with kolibrie's tests;
+use Test::More;
use Test::Exception;
=pod
::throws_ok {
with 'Role::Bling', 'Role::Bling::Bling';
- } qr/Due to a method name conflict in roles 'Role::Bling' and 'Role::Bling::Bling', the method 'bling' must be implemented by 'My::Test3'/, '... role methods conflict and method was required';
+ } qr/Due to a method name conflict in roles 'Role::Bling' and 'Role::Bling::Bling', the method 'bling' must be implemented or excluded by 'My::Test3'/, '... role methods conflict and method was required';
package My::Test4;
use Moose;
'Role::Reality::twist',
'... the twist method returns the right value');
+# Ovid's test case from rt.cpan.org #44
+{
+ package Role1;
+ use Moose::Role;
+
+ sub foo {}
+}
+{
+ package Role2;
+ use Moose::Role;
+
+ sub foo {}
+}
+{
+ package Conflicts;
+ use Moose;
+
+ ::throws_ok {
+ with qw(Role1 Role2);
+ } qr/Due to a method name conflict in roles 'Role1' and 'Role2', the method 'foo' must be implemented or excluded by 'Conflicts'/;
+}
+
=pod
Role conflicts between attributes and methods
is($test26->ghost, 'My::Test26::ghost', '... we access the attribute from the class and ignore the role attribute and method');
=cut
+
+done_testing;