Dancer2
view release on metacpan or search on metacpan
t/classes/Dancer2-Core-Role-Serializer/with.t view on Meta::CPAN
use strict;
use warnings;
use Test::More tests => 4;
use Test::Fatal;
use_ok('Dancer2::Core::Hook');
{
package Serializer::OK;
use Moo;
with 'Dancer2::Core::Role::Serializer';
has '+content_type' => ( default => sub {'plain/test'} );
sub serialize {'{'.$_[1].'}'}
sub deserialize {'['.$_[1].']'}
}
subtest 'Successful' => sub {
plan tests => 5;
my $srl = Serializer::OK->new;
isa_ok( $srl, 'Serializer::OK' );
$srl->add_hook(
Dancer2::Core::Hook->new(
name => 'engine.serializer.before',
code => sub {
my $content = shift;
::is( $content, 'foo', 'Correct content in before hook' );
},
)
);
$srl->add_hook(
Dancer2::Core::Hook->new(
name => 'engine.serializer.after',
code => sub {
my $content = shift;
::is( $content, '{foo}', 'Correct content in after hook' );
},
)
);
is( $srl->serialize('foo'), '{foo}', 'Serializing' );
is( $srl->deserialize('bar'), '[bar]', 'Deserializing' );
};
{
package Serializer::NotOK;
use Moo;
with 'Dancer2::Core::Role::Serializer';
has '+content_type' => ( default => sub {'plain/test'} );
sub serialize { die '+' . $_[1] . '+' }
sub deserialize { die '-' . $_[1] . '-' }
}
subtest 'Unsuccessful' => sub {
plan tests => 21;
use_ok('Dancer2::Logger::Capture');
{
my $logger = Dancer2::Logger::Capture->new;
( run in 0.697 second using v1.01-cache-2.11-cpan-54e63673c56 )