summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
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;