1# copied over from JSON::XS and modified to use JSON::PP
2
3package JSON::PP::freeze;
4
51;
6
7package JSON::PP::tojson;
8
91;
10
11package main;
12
13use strict;
14use warnings;
15use Test::More;
16BEGIN { plan tests => 20 };
17BEGIN { $^W = 0 } # hate
18
19BEGIN { $ENV{PERL_JSON_BACKEND} = 0; }
20
21use JSON::PP;
22
23my $json = JSON::PP->new->convert_blessed->allow_tags->allow_nonref;
24
25ok (1);
26
27sub JSON::PP::tojson::TO_JSON {
28   ok (@_ == 1);
29   ok (JSON::PP::tojson:: eq ref $_[0]);
30   ok ($_[0]{k} == 1);
31   7
32}
33
34my $obj = bless { k => 1 }, JSON::PP::tojson::;
35
36ok (1);
37
38my $enc = $json->encode ($obj);
39ok ($enc eq 7);
40
41ok (1);
42
43sub JSON::PP::freeze::FREEZE {
44   ok (@_ == 2);
45   ok ($_[1] eq "JSON");
46   ok (JSON::PP::freeze:: eq ref $_[0]);
47   ok ($_[0]{k} == 1);
48   (3, 1, 2)
49}
50
51sub JSON::PP::freeze::THAW {
52   ok (@_ == 5);
53   ok (JSON::PP::freeze:: eq $_[0]);
54   ok ($_[1] eq "JSON");
55   ok ($_[2] == 3);
56   ok ($_[3] == 1);
57   ok ($_[4] == 2);
58   777
59}
60
61$obj = bless { k => 1 }, JSON::PP::freeze::;
62$enc = $json->encode ($obj);
63ok ($enc eq '("JSON::PP::freeze")[3,1,2]');
64
65my $dec = $json->decode ($enc);
66ok ($dec eq 777);
67
68ok (1);
69
70