The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More import => ['!pass'];
use strict;
use warnings;
use Dancer;

ok(setting('serializer' => 'Dumper'), "serializer Dumper loaded");
my $s = Dancer::Serializer->engine;

isa_ok($s, $_) for qw(
    Dancer::Engine
    Dancer::Serializer::Abstract
    Dancer::Serializer::Dumper);
can_ok $s, qw(serialize deserialize);

my $data = { foo => 42 };
my $dumper = $s->serialize($data);
like $dumper, qr/'foo' => 42/, "data is correctly serialized by \$s";
like Dancer::to_dumper($data), qr/'foo' => 42/, 
    "data is correctly serialized by to_dumper()";

my $data2 = $s->deserialize($dumper);
is_deeply $data2, $data, 
    "data is correctly deserialized by \$s";
is_deeply Dancer::from_dumper($dumper), $data, 
    "data is correctly deserialized by from_dumper";

is $s->content_type, 'text/x-data-dumper',
    "content_type is text/x-data-dumper";

done_testing;