X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F04-parameterized-roles.t;h=b7b61825de09b03f299959dd7f0547b3c8e7cb4d;hb=f2dec73df5a5b1eafeb7d39cbf5d775b29795cfb;hp=d735cdde113fb689882303a310f9c214b4bd9f2d;hpb=bb7cca58bd0aeb53796d1e058082f04077c630cc;p=gitmo%2FMooseX-AlwaysCoerce.git diff --git a/t/04-parameterized-roles.t b/t/04-parameterized-roles.t index d735cdd..b7b6182 100644 --- a/t/04-parameterized-roles.t +++ b/t/04-parameterized-roles.t @@ -5,52 +5,47 @@ use warnings; use Test::More; use Test::Exception; -unless (eval { require MooseX::Role::Parameterized }) { - plan skip_all => 'This test needs MooseX::Role::Parameterized'; -} +use Test::Requires { + 'MooseX::Role::Parameterized' => 0.01, +}; eval <<'EOF'; package Role; use MooseX::Role::Parameterized; + use MooseX::ClassAttribute; use MooseX::AlwaysCoerce; use Moose::Util::TypeConstraints; - # I do nothing! - role {}; - - subtype 'MyType', as 'Int'; - coerce 'MyType', from 'Str', via { length $_ }; + role { + subtype 'MyType', as 'Int'; + coerce 'MyType', from 'Str', via { length $_ }; - subtype 'Uncoerced', as 'Int'; + subtype 'Uncoerced', as 'Int'; - has foo => (is => 'rw', isa => 'MyType'); + has foo => (is => 'rw', isa => 'MyType'); - class_has bar => (is => 'rw', isa => 'MyType'); + class_has bar => (is => 'rw', isa => 'MyType'); - class_has baz => (is => 'rw', isa => 'MyType', coerce => 0); + class_has baz => (is => 'rw', isa => 'MyType', coerce => 0); - has quux => (is => 'rw', isa => 'MyType', coerce => 0); + has quux => (is => 'rw', isa => 'MyType', coerce => 0); - has uncoerced_attr => (is => 'rw', isa => 'Uncoerced'); + has uncoerced_attr => (is => 'rw', isa => 'Uncoerced'); - class_has uncoerced_class_attr => (is => 'rw', isa => 'Uncoerced'); + class_has uncoerced_class_attr => (is => 'rw', isa => 'Uncoerced'); - has untyped_attr => (is => 'rw'); + has untyped_attr => (is => 'rw'); - class_has untyped_class_attr => (is => 'rw'); + class_has untyped_class_attr => (is => 'rw'); + }; - package Foo; + package MyClass; use Moose; with 'Role'; EOF -if ($@) { - plan skip_all => -'MooseX::ClassAttribute is currently incompatible with MooseX::Role::Parameterized'; -} plan tests => 10; - eval 'use Test::NoWarnings'; ok( (my $instance = MyClass->new), 'instance' ); @@ -62,35 +57,35 @@ ok( (my $instance = MyClass->new), 'instance' ); $instance->foo('bar'); is $instance->foo, 3; } 'attribute coercion ran'; -} -lives_and { - $instance->bar('baz'); - is $instance->bar, 3; -} 'class attribute coercion ran'; + lives_and { + $instance->bar('baz'); + is $instance->bar, 3; + } 'class attribute coercion ran'; -dies_ok { $instance->baz('quux') } - 'class attribute coercion did not run with coerce => 0'; + dies_ok { $instance->baz('quux') } + 'class attribute coercion did not run with coerce => 0'; -dies_ok { $instance->quux('mtfnpy') } - 'attribute coercion did not run with coerce => 0'; + dies_ok { $instance->quux('mtfnpy') } + 'attribute coercion did not run with coerce => 0'; -lives_and { - $instance->uncoerced_attr(10); - is $instance->uncoerced_attr(10), 10; -} 'set attribute having type with no coercion and no coerce=0'; + lives_and { + $instance->uncoerced_attr(10); + is $instance->uncoerced_attr(10), 10; + } 'set attribute having type with no coercion and no coerce=0'; -lives_and { - $instance->uncoerced_class_attr(10); - is $instance->uncoerced_class_attr(10), 10; -} 'set class attribute having type with no coercion and no coerce=0'; + lives_and { + $instance->uncoerced_class_attr(10); + is $instance->uncoerced_class_attr(10), 10; + } 'set class attribute having type with no coercion and no coerce=0'; -lives_and { - $instance->untyped_attr(10); - is $instance->untyped_attr, 10; -} 'set untyped attribute'; + lives_and { + $instance->untyped_attr(10); + is $instance->untyped_attr, 10; + } 'set untyped attribute'; -lives_and { - $instance->untyped_class_attr(10); - is $instance->untyped_class_attr, 10; -} 'set untyped class attribute'; + lives_and { + $instance->untyped_class_attr(10); + is $instance->untyped_class_attr, 10; + } 'set untyped class attribute'; +}