X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F22_class_type.t;h=f3d813af4520d6767b11ee5af9805976c61ca67f;hb=aa19f5d2c15954b97709b9feba8c8d6233693331;hp=2fdf5608add93707c6961a5126333450d8edd7a0;hpb=b2a6a381bc32367be60f79761351f2308025cb9a;p=gitmo%2FMooseX-Types.git diff --git a/t/22_class_type.t b/t/22_class_type.t index 2fdf560..f3d813a 100644 --- a/t/22_class_type.t +++ b/t/22_class_type.t @@ -5,9 +5,25 @@ use Test::More; BEGIN { package MyTypes; - use MooseX::Types -declare => [ 'ClassyType' ]; + use MooseX::Types::Moose qw( Item ); + use MooseX::Types -declare => [ 'ClassyType', 'NoClass' ]; - class_type ClassyType, { class => 'ClassyClass' }; + class_type 'ClassyClass'; + + subtype ClassyType, as 'ClassyClass'; + + subtype NoClass, as Item, where { 1 }; +} + +BEGIN { + + ok(!eval { MyTypes::ClassyType->new }, 'new without class loaded explodes'); + + like($@, qr/does not provide/, 'right exception'); + + ok(!eval { MyTypes::NoClass->new }, 'new on non-class type'); + + like($@, qr/non-class-type/, 'right exception'); } BEGIN { @@ -16,6 +32,8 @@ BEGIN { use Moose; + sub check { die "FAIL" } + package ClassyClassConsumer; BEGIN { MyTypes->import('ClassyType') } @@ -31,4 +49,8 @@ ok(my $o = ClassyClassConsumer->new, "Constructor happy"); is(ref($o->om_nom), 'ClassyClass', 'Attribute happy'); +ok(ClassyClassConsumer->new(om_nom => ClassyClass->new), 'Constructor happy'); + +ok(!eval { ClassyClassConsumer->new(om_nom => 3) }, 'Type checked'); + done_testing;