X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F400-define-role.t;h=1cb7397ff30d5b17c5cf94183e6a533012fc2ded;hb=7b133c927969b2e9233a51c6be5caed54c88915e;hp=0b3da451a5f626cd48c039f4f3617740b1e9a52a;hpb=eb812bdec4270b062ab0f35e2d22696e92324dfe;p=gitmo%2FMouse.git diff --git a/t/400-define-role.t b/t/400-define-role.t index 0b3da45..1cb7397 100644 --- a/t/400-define-role.t +++ b/t/400-define-role.t @@ -1,7 +1,15 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 7; +use Test::More; +BEGIN{ + if(eval{ require Class::Method::Modifiers::Fast } || eval{ require Class::Method::Modifiers }){ + plan tests => 11; + } + else{ + plan skip_all => 'This test requires Class::Method::Modifiers(::Fast)?'; + } +} use Test::Exception; lives_ok { @@ -18,7 +26,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; @@ -44,7 +52,7 @@ lives_ok { package Role; use Mouse::Role; - has 'foo'; + has 'foo' => (is => 'bare'); no Mouse::Role; }; @@ -64,13 +72,39 @@ lives_ok { no Mouse::Role; }; -lives_ok { +TODO: { package Role; use Mouse::Role; - requires 'required'; - excludes 'excluded'; + eval { + excludes 'excluded'; + }; + local our $TODO = "Mouse::Role does not currently support 'excludes'"; + ::ok(!$@, "excludes"); 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"); +}; + +lives_ok{ + package Class; + use Mouse; + + with 'Role', 'Other::Role'; +}; +