summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/json.t40
1 files changed, 40 insertions, 0 deletions
diff --git a/t/json.t b/t/json.t
new file mode 100644
index 0000000..a2abf93
--- /dev/null
+++ b/t/json.t
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Test::Requires 'JSON';
+
+use Moose::Util::TypeConstraints 'find_type_constraint';
+
+use MooseX::Validation::Doctypes;
+
+doctype 'Person' => {
+ id => 'Str',
+ name => 'Str',
+ title => 'Str',
+};
+
+my $JSON = JSON->new->utf8->convert_blessed;
+
+{
+ my $person = find_type_constraint('Person');
+ my $errors = $person->validate({ foo => "bar" });
+
+ is_deeply(
+ $JSON->decode($JSON->encode($errors)),
+ {
+ errors => {
+ id => "invalid value undef for 'id'",
+ name => "invalid value undef for 'name'",
+ title => "invalid value undef for 'title'",
+ },
+ extra_data => {
+ foo => "bar",
+ },
+ },
+ "error objects can be encoded as json"
+ );
+}
+
+done_testing;