Finish renaming Mouse::TypeRegistry to Mouse::Util::TypeConstraints
[gitmo/Mouse.git] / t / 800_shikabased / 005-class_type.t
CommitLineData
ecc6e3b1 1use strict;
2use warnings;
3use Test::More tests => 4;
ecc6e3b1 4{
5 package Response;
6 use Mouse;
3b46bd49 7 use Mouse::Util::TypeConstraints;
ecc6e3b1 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
23my $res = Response->new(headers => { foo => 'bar' });
2f6fade8 24isa_ok($res->headers, 't::lib::ClassType_Foo');
ecc6e3b1 25is($res->headers->foo, 'bar');
26$res->headers({foo => 'yay'});
2f6fade8 27isa_ok($res->headers, 't::lib::ClassType_Foo');
ecc6e3b1 28is($res->headers->foo, 'yay');