Turn off deprecation warnings.
[gitmo/Moose.git] / t / 100_bugs / 030_coerce_without_coercion.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5 use Test::Exception;
6 use Test::Moose;
7
8 {
9     package Foo;
10
11     use Moose::Deprecated -api_version => '1.07';
12     use Moose;
13
14     has x => (
15         is     => 'rw',
16         isa    => 'HashRef',
17         coerce => 1,
18     );
19 }
20
21 with_immutable {
22     lives_ok { Foo->new( x => {} ) }
23     'Setting coerce => 1 without a coercion on the type does not cause an error in the constructor';
24
25     lives_ok { Foo->new->x( {} ) }
26     'Setting coerce => 1 without a coercion on the type does not cause an error when setting the attribut';
27
28     throws_ok { Foo->new( x => 42 ) }
29     qr/\QAttribute (x) does not pass the type constraint because/,
30         'Attempting to provide an invalid value to the constructor for this attr still fails';
31
32     throws_ok { Foo->new->x(42) }
33     qr/\QAttribute (x) does not pass the type constraint because/,
34         'Attempting to provide an invalid value to the accessor for this attr still fails';
35 }
36 'Foo';
37
38 done_testing;