add with qw( Role1 Role2 ) support
[gitmo/Mouse.git] / t / 800_shikabased / 005-class_type.t
CommitLineData
ecc6e3b1 1use strict;
2use warnings;
3use Test::More tests => 4;
4
5{
6 package Response::Headers;
7 use Mouse;
8 has 'foo' => ( is => 'rw' );
9}
10
11{
12 package Response;
13 use Mouse;
14 use Mouse::TypeRegistry;
15
16 class_type Headers => { class => 'Response::Headers' };
61a02a3a 17 coerce 'Headers' =>
18 from 'HashRef' => via {
ecc6e3b1 19 Response::Headers->new(%{ $_ });
20 },
61a02a3a 21 ;
ecc6e3b1 22
23 has headers => (
24 is => 'rw',
25 isa => 'Headers',
26 coerce => 1,
27 );
28}
29
30my $res = Response->new(headers => { foo => 'bar' });
31isa_ok($res->headers, 'Response::Headers');
32is($res->headers->foo, 'bar');
33$res->headers({foo => 'yay'});
34isa_ok($res->headers, 'Response::Headers');
35is($res->headers->foo, 'yay');