#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Test::Exception;
use Data::Dumper;
use CBOR::PP;
my @roundtrip = (
'00',
'01',
"\xff",
);
for my $val (@roundtrip) {
local $Data::Dumper::Useqq = 1;
local $Data::Dumper::Terse = 1;
local $Data::Dumper::Indent = 0;
is(
CBOR::PP::decode( CBOR::PP::encode($val) ),
$val,
"round-trip preserves: " . Dumper($val),
);
}
#----------------------------------------------------------------------
is(
unpack( 'H*', CBOR::PP::encode( CBOR::PP::tag(0, '2013-03-21T20:04:00Z') ) ),
'c054323031332d30332d32315432303a30343a30305a',
'encode a tagged string',
);
#----------------------------------------------------------------------
my $narcissus = [];
push @$narcissus, $narcissus;
throws_ok(
sub { CBOR::PP::encode($narcissus) },
'CBOR::PP::X::Recursion',
'recursive object triggers recursion error',
);
my $a = [];
my $b = [$a];
push @$a, $b;
throws_ok(
sub { CBOR::PP::encode($a) },
'CBOR::PP::X::Recursion',
'object that recurses with another object triggers recursion error',
);
done_testing();