package My::Test1;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Foo', 'Role::Bar';
- }, '... our mutually recursive roles combine okay';
+ }, undef, '... our mutually recursive roles combine okay' );
package My::Test2;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Bar', 'Role::Foo';
- }, '... our mutually recursive roles combine okay (no matter what order)';
+ }, undef, '... our mutually recursive roles combine okay (no matter what order)' );
}
my $test1 = My::Test1->new;
package My::Test3;
use Moose;
- ::like ::exception {
+ ::like( ::exception {
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 or excluded 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;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Bling';
with 'Role::Bling::Bling';
- }, '... role methods didnt conflict when manually combined';
+ }, undef, '... role methods didnt conflict when manually combined' );
package My::Test5;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Bling::Bling';
with 'Role::Bling';
- }, '... role methods didnt conflict when manually combined (in opposite order)';
+ }, undef, '... role methods didnt conflict when manually combined (in opposite order)' );
package My::Test6;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Bling::Bling', 'Role::Bling';
- }, '... role methods didnt conflict when manually resolved';
+ }, undef, '... role methods didnt conflict when manually resolved' );
sub bling { 'My::Test6::bling' }
}
package My::Test7;
use Moose;
- ::like ::exception {
+ ::like( ::exception {
with 'Role::Boo', 'Role::Boo::Hoo';
- }, qr/We have encountered an attribute conflict/,
- '... role attrs conflict and method was required';
+ }, qr/We have encountered an attribute conflict.+ghost/ );
package My::Test8;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Boo';
with 'Role::Boo::Hoo';
- }, '... role attrs didnt conflict when manually combined';
+ }, undef, '... role attrs didnt conflict when manually combined' );
package My::Test9;
use Moose;
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Boo::Hoo';
with 'Role::Boo';
- }, '... role attrs didnt conflict when manually combined';
+ }, undef, '... role attrs didnt conflict when manually combined' );
package My::Test10;
use Moose;
has 'ghost' => (is => 'ro', default => 'My::Test10::ghost');
- ::like ::exception {
+ ::like( ::exception {
with 'Role::Boo', 'Role::Boo::Hoo';
- }, qr/We have encountered an attribute conflict/,
- '... role attrs conflict and cannot be manually disambiguted';
+ }, qr/We have encountered an attribute conflict/, '... role attrs conflict and cannot be manually disambiguted' );
}
extends 'My::Test::Base';
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Truth';
- }, '... composed the role with override okay';
+ }, undef, '... composed the role with override okay' );
package My::Test12;
use Moose;
extends 'My::Test::Base';
- ::ok ! ::exception {
+ ::is( ::exception {
with 'Role::Plot';
- }, '... composed the role with override okay';
+ }, undef, '... composed the role with override okay' );
package My::Test13;
use Moose;
- ::ok ::exception {
+ ::isnt( ::exception {
with 'Role::Plot';
- }, '... cannot compose it because we have no superclass';
+ }, undef, '... cannot compose it because we have no superclass' );
package My::Test14;
use Moose;
extends 'My::Test::Base';
- ::like ::exception {
+ ::like( ::exception {
with 'Role::Plot', 'Role::Truth';
- }, qr/Two \'override\' methods of the same name encountered/,
- '... cannot compose it because we have no superclass';
+ }, qr/Two \'override\' methods of the same name encountered/, '... cannot compose it because we have no superclass' );
}
ok(My::Test11->meta->has_method('twist'), '... the twist method has been added');
package Role::Reality;
use Moose::Role;
- ::like ::exception {
+ ::like( ::exception {
with 'Role::Plot';
- }, qr/A local method of the same name as been found/,
- '... could not compose roles here, it dies';
+ }, qr/A local method of the same name as been found/, '... could not compose roles here, it dies' );
sub twist {
'Role::Reality::twist';
package Conflicts;
use Moose;
- ::like ::exception {
+ ::like( ::exception {
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'/;
+ }, qr/Due to a method name conflict in roles 'Role1' and 'Role2', the method 'foo' must be implemented or excluded by 'Conflicts'/ );
}
=pod
package My::Test15;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method';
- }, '... composed the method role into the method class';
+ } '... composed the method role into the method class';
sub ghost { 'My::Test15::ghost' }
package My::Test16;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method';
- }, '... composed the method role into the attribute class';
+ } '... composed the method role into the attribute class';
has 'ghost' => (is => 'ro', default => 'My::Test16::ghost');
package My::Test17;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute';
- }, '... composed the attribute role into the method class';
+ } '... composed the attribute role into the method class';
sub ghost { 'My::Test17::ghost' }
package My::Test18;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute';
- }, '... composed the attribute role into the attribute class';
+ } '... composed the attribute role into the attribute class';
has 'ghost' => (is => 'ro', default => 'My::Test18::ghost');
package My::Test19;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method', 'Role::Method2';
- }, '... composed method roles into class with method tiebreaker';
+ } '... composed method roles into class with method tiebreaker';
sub ghost { 'My::Test19::ghost' }
package My::Test20;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method', 'Role::Method2';
- }, '... composed method roles into class with attribute tiebreaker';
+ } '... composed method roles into class with attribute tiebreaker';
has 'ghost' => (is => 'ro', default => 'My::Test20::ghost');
package My::Test21;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute', 'Role::Attribute2';
- }, '... composed attribute roles into class with method tiebreaker';
+ } '... composed attribute roles into class with method tiebreaker';
sub ghost { 'My::Test21::ghost' }
package My::Test22;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute', 'Role::Attribute2';
- }, '... composed attribute roles into class with attribute tiebreaker';
+ } '... composed attribute roles into class with attribute tiebreaker';
has 'ghost' => (is => 'ro', default => 'My::Test22::ghost');
package My::Test23;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method', 'Role::Attribute';
- }, '... composed method and attribute role into class with method tiebreaker';
+ } '... composed method and attribute role into class with method tiebreaker';
sub ghost { 'My::Test23::ghost' }
package My::Test24;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Method', 'Role::Attribute';
- }, '... composed method and attribute role into class with attribute tiebreaker';
+ } '... composed method and attribute role into class with attribute tiebreaker';
has 'ghost' => (is => 'ro', default => 'My::Test24::ghost');
package My::Test25;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute', 'Role::Method';
- }, '... composed attribute and method role into class with method tiebreaker';
+ } '... composed attribute and method role into class with method tiebreaker';
sub ghost { 'My::Test25::ghost' }
package My::Test26;
use Moose;
- ::ok ! ::exception {
+ ::lives_ok {
with 'Role::Attribute', 'Role::Method';
- }, '... composed attribute and method role into class with attribute tiebreaker';
+ } '... composed attribute and method role into class with attribute tiebreaker';
has 'ghost' => (is => 'ro', default => 'My::Test26::ghost');
}