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 0.974 second using v1.01-cache-2.11-cpan-6aa56a78535 )