X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F007-excludes.t;h=f7673d8eda2eed451086d40922a664585657fe11;hb=636c0aa545ecbeafdb7a0efe97cf9f37df6ade2b;hp=b312bedcdd089853773521df3eaa71b19ee3f883;hpb=8a951e2c7f935c9a06dedb041678add132e1aba2;p=gitmo%2FMooseX-Role-Parameterized.git diff --git a/t/007-excludes.t b/t/007-excludes.t index b312bed..f7673d8 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 { @@ -28,49 +28,21 @@ sub excludes_roles { } @_ } -TODO: { - local $TODO = "the error message says Role::A excludes Role::A..??!"; - throws_ok { - Moose::Meta::Class->create_anon_class( - roles => [ 'Role::A', excludes_roles('Role::A') ], - ); - } qr/^Conflict detected: Moose::Meta::Role::__ANON__::SERIAL::\d+ excludes role 'Role::A'/; +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 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') ], -# ); -#}; -#