Dancer2-Session-DBIC
view release on metacpan or search on metacpan
t/serializers/json.t view on Meta::CPAN
use strict;
use warnings;
use utf8;
use open ':std', ':encoding(utf8)';
use Test::More;
use Test::Deep;
use Test::Fatal;
use Dancer2::Session::DBIC::Serializer::JSON;
my ( $serializer, $result );
# no options
is(
exception { $serializer = Dancer2::Session::DBIC::Serializer::JSON->new },
undef, "new with no args lived",
);
isa_ok( $serializer, "Dancer2::Session::DBIC::Serializer::JSON" );
is(
exception {
$result = $serializer->serialize( { foo => { camel => 'ã©ã¯ã' } } )
},
undef,
"serialize { foo => { camel => 'ã©ã¯ã' } } lives",
);
cmp_ok( $result, 'eq', q({"foo":{"camel":"ã©ã¯ã"}}),
"we got the json we expected" );
is(
exception { $result = $serializer->deserialize(q({"foo":{"camel":"ã©ã¯ã"}})) },
undef,
'deserialize {"foo":{"camel":"ã©ã¯ã"}} lives',
);
cmp_deeply(
$result,
{ foo => { camel => 'ã©ã¯ã' } },
"we got the hashref we expected"
);
# options
is(
exception { $serializer = Dancer2::Session::DBIC::Serializer::JSON->new( serialize_options => { pretty => 1 }) },
undef, "new with serialize_options lived",
);
isa_ok( $serializer, "Dancer2::Session::DBIC::Serializer::JSON" );
is(
exception {
$result = $serializer->serialize( { foo => { camel => 'ã©ã¯ã' } } )
},
undef,
"serialize { foo => { camel => 'ã©ã¯ã' } } lives",
);
like( $result, qr({\n\s+"foo"\s+:\s+{\n\s+"camel"\s+:\s+"ã©ã¯ã"\n\s+}\n}),
"we got the json we expected" );
done_testing;
( run in 1.164 second using v1.01-cache-2.11-cpan-54e63673c56 )