try again you muppet
[gitmo/MooseX-Types.git] / t / 22_class_type.t
CommitLineData
b2a6a381 1use strict;
2use warnings;
3use Test::More;
4
5BEGIN {
6 package MyTypes;
7
8 use MooseX::Types -declare => [ 'ClassyType' ];
9
cabfc8ed 10 class_type 'ClassyClass';
11
12 subtype ClassyType, as 'ClassyClass';
13
14 #class_type ClassyType, { class => 'ClassyClass' };
b2a6a381 15}
16
17BEGIN {
18
19 package ClassyClass;
20
21 use Moose;
22
ee3f4093 23 sub check { die "FAIL" }
24
b2a6a381 25 package ClassyClassConsumer;
26
27 BEGIN { MyTypes->import('ClassyType') }
28 use Moose;
29
30 has om_nom => (
31 is => 'ro', isa => ClassyType, default => sub { ClassyType->new }
32 );
33
34}
35
36ok(my $o = ClassyClassConsumer->new, "Constructor happy");
37
38is(ref($o->om_nom), 'ClassyClass', 'Attribute happy');
39
195d6241 40ok(ClassyClassConsumer->new(om_nom => ClassyClass->new), 'Constructor happy');
41
cabfc8ed 42ok(!eval { ClassyClassConsumer->new(om_nom => 3) }, 'Type checked');
43
b2a6a381 44done_testing;