Commit | Line | Data |
---|---|---|
ecc6e3b1 | 1 | use strict; |
2 | use warnings; | |
3 | use Test::More tests => 4; | |
ecc6e3b1 | 4 | { |
5 | package Response; | |
6 | use Mouse; | |
3b46bd49 | 7 | use Mouse::Util::TypeConstraints; |
ecc6e3b1 | 8 | |
a5fc1e9a | 9 | require t::lib::ClassType_Foo; |
10 | ||
2f6fade8 | 11 | class_type Headers => { class => 't::lib::ClassType_Foo' }; |
61a02a3a | 12 | coerce 'Headers' => |
13 | from 'HashRef' => via { | |
2f6fade8 | 14 | t::lib::ClassType_Foo->new(%{ $_ }); |
ecc6e3b1 | 15 | }, |
61a02a3a | 16 | ; |
ecc6e3b1 | 17 | |
18 | has headers => ( | |
19 | is => 'rw', | |
20 | isa => 'Headers', | |
21 | coerce => 1, | |
22 | ); | |
23 | } | |
24 | ||
25 | my $res = Response->new(headers => { foo => 'bar' }); | |
2f6fade8 | 26 | isa_ok($res->headers, 't::lib::ClassType_Foo'); |
ecc6e3b1 | 27 | is($res->headers->foo, 'bar'); |
28 | $res->headers({foo => 'yay'}); | |
2f6fade8 | 29 | isa_ok($res->headers, 't::lib::ClassType_Foo'); |
ecc6e3b1 | 30 | is($res->headers->foo, 'yay'); |