libmoosex-types-json-perl/t/json.t

37 lines
956 B
Perl

use Test::More tests => 6;
{
package Foo;
use Moose;
use Moose::Util::TypeConstraints;
use MooseX::Types::JSON qw( JSON relaxedJSON );
has json_strict => ( is => 'rw', isa => JSON );
has json_relaxed => ( is => 'rw', isa => relaxedJSON );
}
my $json = qq| { "foo": "bar", "answer": "42" } |;
my $relaxed = qq| { "foo": "bar", "answer": "42", } |;
my $nojson = qq| { { |;
my $foo = Foo->new;
eval { $foo->json_strict($json) };
ok( $@ eq "", "strict => strict" );
eval { $foo->json_strict($relaxed) };
like( $@, qr/json_strict/, "relaxed => strict" );
eval { $foo->json_relaxed($json) };
ok( $@ eq "", "strict => relaxed" );
eval { $foo->json_relaxed($relaxed) };
ok( $@ eq "", "relaxed => relaxed" );
eval { $foo->json_relaxed($nojson) };
like( $@, qr/json_relaxed/, "nojson => relaxed" );
eval { $foo->json_strict($nojson) };
like( $@, qr/json_strict/, "nojson => strict" );