diff options
-rw-r--r-- | lib/MooseX/AlwaysCoerce.pm | 4 | ||||
-rw-r--r-- | t/01-basic.t | 14 |
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/MooseX/AlwaysCoerce.pm b/lib/MooseX/AlwaysCoerce.pm index fbb1e1f..b82c423 100644 --- a/lib/MooseX/AlwaysCoerce.pm +++ b/lib/MooseX/AlwaysCoerce.pm @@ -93,6 +93,10 @@ sub init_meta { Rafael Kitover, C<< <rkitover at cpan.org> >> +=head1 CONTRIBUTORS + +Schwern: Michael G. Schwern <mschwern@cpan.org> + =head1 BUGS Please report any bugs or feature requests to C<bug-moosex-alwayscoerce at rt.cpan.org>, or through diff --git a/t/01-basic.t b/t/01-basic.t index 1f7f3b1..bfe227c 100644 --- a/t/01-basic.t +++ b/t/01-basic.t @@ -2,7 +2,7 @@ use strict; use warnings; -use Test::More tests => 5; +use Test::More tests => 7; { package MyClass; @@ -13,6 +13,8 @@ use Test::More tests => 5; subtype 'MyType', as 'Int'; coerce 'MyType', from 'Str', via { length $_ }; + subtype 'Uncoerced', as 'Int'; + has foo => (is => 'rw', isa => 'MyType'); class_has bar => (is => 'rw', isa => 'MyType'); @@ -20,6 +22,10 @@ use Test::More tests => 5; class_has baz => (is => 'rw', isa => 'MyType', coerce => 0); has quux => (is => 'rw', isa => 'MyType', coerce => 0); + + has uncoerced_attr => (is => 'rw', isa => 'Uncoerced'); + + class_has uncoerced_class_attr => (is => 'rw', isa => 'Uncoerced'); } ok( (my $instance = MyClass->new), 'instance' ); @@ -37,3 +43,9 @@ undef $@; eval { $instance->quux('mtfnpy') }; ok( $@, 'attribute coercion did not run with coerce => 0' ); + +eval { $instance->uncoerced_attr(10) }; +is $@, "", 'set attribute having type with no coercion and no coerce=0'; + +eval { $instance->uncoerced_class_attr(10) }; +is $@, "", 'set class attribute having type with no coercion and no coerce=0'; |