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