DateTime-Format-Lite
view release on metacpan or search on metacpan
t/85.serialisation.t view on Meta::CPAN
subtest 'Sereal round-trip' => sub
{
SKIP:
{
if( !eval{ require Sereal::Encoder; require Sereal::Decoder; 1 } )
{
skip( 'Sereal not available', 3 );
}
my $orig = _make_fmt();
# freeze_callbacks => 1 tells Sereal to honour FREEZE/THAW hooks, which
# avoids serialising internal objects (such as DBI handles buried inside
# DateTime::Locale::FromCLDR) by introspection.
my $encoder = Sereal::Encoder->new({ freeze_callbacks => 1 });
my $decoder = Sereal::Decoder->new({ refuse_objects => 0 });
my $frozen = $encoder->encode( $orig );
ok( defined( $frozen ), 'Sereal encode succeeded' );
my $restored = $decoder->decode( $frozen );
ok( defined( $restored ), 'Sereal decode returned object' );
isa_ok( $restored, 'DateTime::Format::Lite' );
_check_state( $orig, $restored, 'Sereal' );
};
};
( run in 1.963 second using v1.01-cache-2.11-cpan-995e09ba956 )