1# copied over from JSON::PC and modified to use JSON::PP
2# copied over from JSON::XS and modified to use JSON::PP
3
4use strict;
5use Test::More;
6BEGIN { plan tests => 9 };
7
8BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
9
10use JSON::PP;
11
12my ($js,$obj,$json);
13my $pc = new JSON::PP;
14
15$obj = {foo => "bar"};
16$js = $pc->encode($obj);
17is($js,q|{"foo":"bar"}|);
18
19$obj = [10, "hoge", {foo => "bar"}];
20$pc->pretty (1);
21$js = $pc->encode($obj);
22is($js,q|[
23   10,
24   "hoge",
25   {
26      "foo" : "bar"
27   }
28]
29|);
30
31$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
32$pc->pretty(0);
33$js = $pc->encode($obj);
34is($js,q|{"foo":[{"a":"b"},0,1,2]}|);
35
36
37$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
38$pc->pretty(1);
39$js = $pc->encode($obj);
40is($js,q|{
41   "foo" : [
42      {
43         "a" : "b"
44      },
45      0,
46      1,
47      2
48   ]
49}
50|);
51
52$obj = { foo => [ {a=>"b"}, 0, 1, 2 ] };
53$pc->pretty(0);
54$js = $pc->encode($obj);
55is($js,q|{"foo":[{"a":"b"},0,1,2]}|);
56
57
58$obj = {foo => "bar"};
59$pc->indent(1);
60is($pc->encode($obj), qq|{\n   "foo":"bar"\n}\n|, "nospace");
61$pc->space_after(1);
62is($pc->encode($obj), qq|{\n   "foo": "bar"\n}\n|, "after");
63$pc->space_before(1);
64is($pc->encode($obj), qq|{\n   "foo" : "bar"\n}\n|, "both");
65$pc->space_after(0);
66is($pc->encode($obj), qq|{\n   "foo" :"bar"\n}\n|, "before");
67
68