File: 03-circleref.t

package info (click to toggle)
libjson-perl 1.00-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 168 kB
  • ctags: 116
  • sloc: perl: 1,158; makefile: 45
file content (39 lines) | stat: -rwxr-xr-x 639 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use Test::More;
use strict;
BEGIN { plan tests => 4 };
use JSON;

my $obj = {a => 123};
my $obj1 = {};
my $obj2 = {};
my $obj3 = {};

$obj1->{a} = $obj1;

eval q{ objToJson($obj1) };
like($@, qr/circle ref/);

$obj1->{a} = $obj2;
$obj2->{b} = $obj3;
$obj3->{c} = $obj;

eval q{ objToJson($obj1) };
unlike($@, qr/circle ref/);
#is(objToJson($obj1), q|{"a":{"b":{"c":{"a":123}}}}|);

$obj1->{a} = $obj2;
$obj2->{b} = $obj3;
$obj3->{c} = $obj1;

eval q{ objToJson($obj1) };
like($@, qr/circle ref/);

$obj1->{a} = [];
$obj2->{b} = {};

$obj1->{a}->[0] = $obj2;
$obj2->{b}->{c} = $obj1;

eval q{ objToJson($obj1) };
like($@, qr/circle ref/);