X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F400-define-role.t;h=0b3da451a5f626cd48c039f4f3617740b1e9a52a;hb=eb812bdec4270b062ab0f35e2d22696e92324dfe;hp=b7893ea419783cdb1fb157fcdf7710347c3d90ee;hpb=995061c2595f55666372746057a4d6ca537e4b6a;p=gitmo%2FMouse.git diff --git a/t/400-define-role.t b/t/400-define-role.t index b7893ea..0b3da45 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 => 1; +use Test::More tests => 7; use Test::Exception; lives_ok { @@ -11,3 +11,66 @@ lives_ok { no Mouse::Role; }; +throws_ok { + package Role; + use Mouse::Role; + + extends 'Role::Parent'; + + no Mouse::Role; +} qr/Role does not currently support 'extends'/; + +lives_ok { + package Role; + use Mouse::Role; + + sub foo {} + + no Mouse::Role; +}; + +lives_ok { + package Role; + use Mouse::Role; + + before foo => sub {}; + after foo => sub {}; + around foo => sub {}; + + no Mouse::Role; +}; + +lives_ok { + package Role; + use Mouse::Role; + + has 'foo'; + + no Mouse::Role; +}; + +do { + package Other::Role; + use Mouse::Role; + no Mouse::Role; +}; + +lives_ok { + package Role; + use Mouse::Role; + + with 'Other::Role'; + + no Mouse::Role; +}; + +lives_ok { + package Role; + use Mouse::Role; + + requires 'required'; + excludes 'excluded'; + + no Mouse::Role; +}; +