fix for bug and prep for cpan
[gitmo/MooseX-Types-Structured.git] / t / 12-error.t
index e253c78..2e099fe 100644 (file)
@@ -1,8 +1,6 @@
-BEGIN {
-    use strict;
-    use warnings;
-    use Test::More tests=>25;
-}
+use strict;
+use warnings;
+use Test::More;
 
 use Moose::Util::TypeConstraints;
 use MooseX::Types::Structured qw(Dict Tuple Optional);
@@ -78,7 +76,7 @@ like $optional_tuple->validate(['a','b']),
  'Correctly failed due to "a" not an Int';
 
 like $optional_tuple->validate([1,$simple_tuple]),
- qr/failed for 'MooseX::Types::Structured::Optional\[Str\]' with value MooseX/,
+ qr/failed for 'Optional\[Str\]' with value MooseX/,
  'Correctly failed due to object not a Str';
 
 like $optional_tuple->validate([1,'hello','too many']),
@@ -90,7 +88,7 @@ like $optional_dict->validate([1,2]),
  'Wrong basic type';
 
 like $optional_dict->validate({name=>'John',age=>'a'}),
- qr/Validation failed for 'MooseX::Types::Structured::Optional\[Int\]' with value a/,
+ qr/Validation failed for 'Optional\[Int\]' with value a/,
  'Correctly failed due to age not an Int';
 
 like $optional_dict->validate({name=>$simple_dict,age=>1}),
@@ -116,10 +114,23 @@ my $deep_tuple = subtype 'deep_tuple',
 ok $deep_tuple->check([1,{a=>2},{name=>'Vincent',age=>15}]),
   'Good Constraint';
 
-like $deep_tuple->validate([1,{a=>2},{name=>'Vincent',age=>'Hello'}]),
-  qr/Error is: Validation failed for 'MooseX::Types::Structured::Dict\[name,Str,age,Int\]'/,
-  'Example deeper error';
+{
+    my $message = $deep_tuple->validate([1,{a=>2},{name=>'Vincent',age=>'Hello'}]);
+    like $message,
+      qr/Validation failed for 'Dict\[name,Str,age,Int\]'/,
+      'Example deeper error';
+}
+
+like $simple_tuple->validate(["aaa","bbb"]),
+  qr/'Int' with value aaa/,
+  'correct deeper error';
+
+like $deep_tuple->validate([1,{a=>2},{name=>'Vincent1',age=>'Hello1'}]),
+  qr/'Int' with value Hello1/,
+  'correct deeper error';
 
 ## Success Tests...
 
 ok !$deep_tuple->validate([1,{a=>2},{name=>'John',age=>40}]), 'Validates ok';
+
+done_testing();