X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F400-define-role.t;h=e5d98919b358fba596c0b9094bf09df4d8fcb786;hb=b32e8fb9860b5e46b8409f603a34c76f9465e644;hp=bde983f999b157e0d098a29d67a8c790ae098b18;hpb=00c0e9c2dcc6d20f95f15ea1f2a3bebe54a2726c;p=gitmo%2FMouse.git diff --git a/t/400-define-role.t b/t/400-define-role.t index bde983f..e5d9891 100644 --- a/t/400-define-role.t +++ b/t/400-define-role.t @@ -1,7 +1,7 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 5; +use Test::More tests => 11; use Test::Exception; lives_ok { @@ -18,7 +18,7 @@ throws_ok { extends 'Role::Parent'; no Mouse::Role; -} qr/Role does not currently support 'extends'/; +} qr/Roles do not support 'extends'/; lives_ok { package Role; @@ -55,12 +55,45 @@ do { no Mouse::Role; }; -lives_ok { +throws_ok { package Role; use Mouse::Role; with 'Other::Role'; no Mouse::Role; +} qr/Role does not currently support 'with'/; + +lives_ok { + package Role; + use Mouse::Role; + + requires 'required'; + excludes 'excluded'; + + no Mouse::Role; +}; + +throws_ok { + package Role; + use Mouse::Role; + + confess "Mouse::Role exports confess"; + +} qr/^Mouse::Role exports confess/; + +lives_ok { + package Role; + use Mouse::Role; + + my $obj = bless {} => "Impromptu::Class"; + ::is(blessed($obj), "Impromptu::Class"); }; +throws_ok { + package Class; + use Mouse; + + with 'Role', 'Other::Role'; +} qr/Mouse::Role only supports 'with' on individual roles at a time/; +