does not implement required method
{
package Foo::Class;
use Role::Basic 'with';
::isnt( ::exception { with('Foo::Role') }, undef, '... no foo method implemented by Foo::Class' );
}
#
hich does implement required method
{
package Bar::Class;
use Role::Basic 'with';
::isnt( ::exception { with('Foo::Class') }, undef, '... cannot consume a class, it must be a role' );
does not implement required method
{
package Baz::Class;
use Role::Basic 'with';
::isnt( ::exception { with('Baz::Role') }, undef, '... no foo method implemented by Baz::Class2' );
}
#
ethods from the roles this role consumed). Thus, we throw an exception
# as it's safer.
::isnt( ::exception {
with qw(Role::J Role::H); # conflict between 'foo's here
}, undef, "de
s( $meth, Role::Foo->can('foo'),
'... which in turn was cloned from Role::Foo->foo' );
}
isnt( ClassA->foo, "ClassB::foo", "ClassA::foo is not confused with ClassB::foo");
is( ClassB->foo, '
# XXX again, we propogate errors immediately rather than generating
# requirements
::isnt( ::exception {
with 'Foo::Role' => { -alias => { 'foo' => 'foo_foo' }, -excludes => 'foo'