X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F007-excludes.t;h=076d6d1af1bc30778437fb71cbc72ed0e6290850;hb=1a8744bd532c206c08642902bdc8c473b09682c9;hp=8762907ae9c71f3b0f3a3d20fe6217006c83ea98;hpb=fa62759642ad1cae5121dcb3a7c781171909d793;p=gitmo%2FMooseX-Role-Parameterized.git diff --git a/t/007-excludes.t b/t/007-excludes.t index 8762907..076d6d1 100644 --- a/t/007-excludes.t +++ b/t/007-excludes.t @@ -1,7 +1,7 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 1; +use Test::More tests => 3; use Test::Exception; do { @@ -24,50 +24,29 @@ Moose::Meta::Role->create("Role::B"); sub excludes_roles { map { - MyRole::Excluder->meta->generate_role(exclude => $_)->name + MyRole::Excluder->meta->generate_role( + parameters => { + exclude => $_, + }, + )->name } @_ } +lives_ok { + Moose::Meta::Class->create_anon_class( + roles => [ excludes_roles('Role::A') ], + ); +}; + throws_ok { Moose::Meta::Class->create_anon_class( roles => [ 'Role::A', excludes_roles('Role::A') ], ); -} qr/^Conflict detected: Role::A excludes role 'Role::A'/; +} qr/^Conflict detected: Role Moose::Meta::Role::__ANON__::SERIAL::\d+ excludes role 'Role::A'/; + +lives_ok { + Moose::Meta::Class->create_anon_class( + roles => [ 'Role::B', excludes_roles('Role::A') ], + ); +}; -#lives_ok { -# Moose::Meta::Class->create_anon_class( -# methods => { -# alpha => sub {}, -# }, -# roles => [ requires_names('alpha') ], -# ); -#}; -# -#throws_ok { -# Moose::Meta::Class->create_anon_class( -# methods => { -# alpha => sub {}, -# }, -# roles => [ requires_names('alpha', 'beta') ], -# ); -#} qr/'Moose::Meta::Role::__ANON__::SERIAL::\d+\|Moose::Meta::Role::__ANON__::SERIAL::\d+' requires the method 'beta' to be implemented by 'Class::MOP::Class::__ANON__::SERIAL::\d+'/; -# -#throws_ok { -# Moose::Meta::Class->create_anon_class( -# methods => { -# beta => sub {}, -# }, -# roles => [ requires_names('alpha', 'beta') ], -# ); -#} qr/'Moose::Meta::Role::__ANON__::SERIAL::\d+\|Moose::Meta::Role::__ANON__::SERIAL::\d+' requires the method 'alpha' to be implemented by 'Class::MOP::Class::__ANON__::SERIAL::\d+'/; -# -#lives_ok { -# Moose::Meta::Class->create_anon_class( -# methods => { -# alpha => sub {}, -# beta => sub {}, -# }, -# roles => [ requires_names('alpha', 'beta') ], -# ); -#}; -#