3 use Test::More tests => 8;
6 package Response::Headers;
8 has 'foo' => ( is => 'rw' );
11 package Request::Headers;
13 has 'foo' => ( is => 'rw' );
19 use Mouse::TypeRegistry;
21 subtype 'Headers' => sub { defined $_ && eval { $_->isa('Response::Headers') } };
22 coerce 'Headers' => +{
24 Response::Headers->new(%{ $_ });
38 use Mouse::TypeRegistry;
40 subtype 'Headers' => sub { defined $_ && eval { $_->isa('Request::Headers') } };
41 coerce 'Headers' => +{
43 Request::Headers->new(%{ $_ });
56 subtype 'Headers' => sub { defined $_ && eval { $_->isa('Response::Headers') } };
57 coerce 'Headers' => +{
59 Response::Headers->new(%{ $_ });
64 my $req = Request->new(headers => { foo => 'bar' });
65 isa_ok($req->headers, 'Request::Headers');
66 is($req->headers->foo, 'bar');
67 $req->headers({foo => 'yay'});
68 isa_ok($req->headers, 'Request::Headers');
69 is($req->headers->foo, 'yay');
71 my $res = Response->new(headers => { foo => 'bar' });
72 isa_ok($res->headers, 'Response::Headers');
73 is($res->headers->foo, 'bar');
74 $res->headers({foo => 'yay'});
75 isa_ok($res->headers, 'Response::Headers');
76 is($res->headers->foo, 'yay');