summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-10-11 14:22:55 -0500
committerJesse Luehrs <doy@tozt.net>2012-10-11 14:23:09 -0500
commitcd59caeec925cf0bf8625d567a442e3c46ae7475 (patch)
tree9fc7ba28aca00fec5f6c53ee1b18249fcd4df006 /t
parentc5ee7923bb6d38f138e58e7da5f9dfaa85bb9721 (diff)
downloadmoosex-validation-doctypes-cd59caeec925cf0bf8625d567a442e3c46ae7475.tar.gz
moosex-validation-doctypes-cd59caeec925cf0bf8625d567a442e3c46ae7475.zip
also provide stringification for the error object
Diffstat (limited to 't')
-rw-r--r--t/complex.t25
-rw-r--r--t/stringify.t33
2 files changed, 45 insertions, 13 deletions
diff --git a/t/complex.t b/t/complex.t
index b617cab..04dbe60 100644
--- a/t/complex.t
+++ b/t/complex.t
@@ -166,25 +166,24 @@ doctype 'Location' => {
}
});
is_deeply(
- $errors,
+ $errors->errors,
{
- errors => {
- contact => {
- email => "invalid value \"anelson at cpan.org\" for 'contact.email'"
- },
- i18n => {
- available_currencies => "invalid value [ \"dolla dolla bill\", \"CAD\", \"EUR\" ] for 'i18n.available_currencies'",
- default_currency => "invalid value undef for 'i18n.default_currency'"
- },
- location => {
- coordinates => {
- lon => "invalid value \"38q\" for 'location.coordinates.lon'"
- }
+ contact => {
+ email => "invalid value \"anelson at cpan.org\" for 'contact.email'"
+ },
+ i18n => {
+ available_currencies => "invalid value [ \"dolla dolla bill\", \"CAD\", \"EUR\" ] for 'i18n.available_currencies'",
+ default_currency => "invalid value undef for 'i18n.default_currency'"
+ },
+ location => {
+ coordinates => {
+ lon => "invalid value \"38q\" for 'location.coordinates.lon'"
}
}
},
"got the right errors"
);
+ ok(!$errors->has_extra_data, "no extra data");
}
}
diff --git a/t/stringify.t b/t/stringify.t
new file mode 100644
index 0000000..c8db5a4
--- /dev/null
+++ b/t/stringify.t
@@ -0,0 +1,33 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Moose::Util::TypeConstraints 'find_type_constraint';
+
+use MooseX::Validation::Doctypes;
+
+doctype 'Person' => {
+ id => 'Str',
+ name => 'Str',
+ title => 'Str',
+};
+
+{
+ my $person = find_type_constraint('Person');
+ my $errors = $person->validate({ foo => "bar" });
+
+ is(
+ "$errors",
+ "invalid value undef for 'id'\n"
+ . "invalid value undef for 'name'\n"
+ . "invalid value undef for 'title'\n"
+ . "extra data found:\n"
+ . "{\n"
+ . " 'foo' => 'bar'\n"
+ . "}",
+ "stringified properly"
+ );
+}
+
+done_testing;