class_type shouldn't load the class (Moose compat; no easy fix :/)
[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
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
25my $res = Response->new(headers => { foo => 'bar' });
2f6fade8 26isa_ok($res->headers, 't::lib::ClassType_Foo');
ecc6e3b1 27is($res->headers->foo, 'bar');
28$res->headers({foo => 'yay'});
2f6fade8 29isa_ok($res->headers, 't::lib::ClassType_Foo');
ecc6e3b1 30is($res->headers->foo, 'yay');