diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-10-11 13:49:04 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-10-11 13:49:04 -0500 |
commit | c5ee7923bb6d38f138e58e7da5f9dfaa85bb9721 (patch) | |
tree | 642e92b853ebe9bac3888365e1159ddd2de88652 /t | |
parent | 04ba3d16bb9db715e009c09f0af807d8d5848263 (diff) | |
download | moosex-validation-doctypes-c5ee7923bb6d38f138e58e7da5f9dfaa85bb9721.tar.gz moosex-validation-doctypes-c5ee7923bb6d38f138e58e7da5f9dfaa85bb9721.zip |
allow serializing the error objects as json
Diffstat (limited to 't')
-rw-r--r-- | t/json.t | 40 |
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; |