use MX:T Item constraint intstead of string type specification
[gitmo/MooseX-Types.git] / t / 22_class_type.t
index 5ebfa85..f3d813a 100644 (file)
@@ -5,13 +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 'ClassyClass';
 
   subtype ClassyType, as 'ClassyClass';
 
-  #class_type ClassyType, { class => '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 {
@@ -20,6 +32,8 @@ BEGIN {
 
   use Moose;
 
+  sub check { die "FAIL" }
+
   package ClassyClassConsumer;
 
   BEGIN { MyTypes->import('ClassyType') }