ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/t/12_blessed.t
Revision: 1.2
Committed: Mon Jul 2 00:48:18 2007 UTC (16 years, 11 months ago) by root
Content type: application/x-troff
Branch: MAIN
Changes since 1.1: +20 -1 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.2 BEGIN { $| = 1; print "1..15\n"; }
2 root 1.1
3     use JSON::XS;
4    
5     our $test;
6     sub ok($;$) {
7     print $_[0] ? "" : "not ", "ok ", ++$test, "\n";
8     }
9    
10     my $o1 = bless { a => 3 }, "XX";
11     my $o2 = bless \(my $dummy = 1), "YY";
12    
13     sub XX::TO_JSON {
14     {__,""}
15     }
16    
17     my $js = JSON::XS->new;
18    
19     eval { $js->encode ($o1) }; ok ($@ =~ /allow_blessed/);
20     eval { $js->encode ($o2) }; ok ($@ =~ /allow_blessed/);
21     $js->allow_blessed;
22     ok ($js->encode ($o1) eq "null");
23     ok ($js->encode ($o2) eq "null");
24     $js->convert_blessed;
25     ok ($js->encode ($o1) eq '{"__":""}');
26     ok ($js->encode ($o2) eq "null");
27    
28 root 1.2 $js->filter_json_object (sub { 5 });
29     $js->filter_json_single_key_object (sub { 6 });
30    
31     ok ("ARRAY" eq ref $js->decode ("[]"));
32     ok (5 eq join ":", @{ $js->decode ('[{}]') });
33     ok (6 eq join ":", @{ $js->decode ('[{"a":4}]') });
34     ok (5 eq join ":", @{ $js->decode ('[{"a":4,"b":7}]') });
35    
36     $js->filter_json_object;
37     ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b});
38     ok (6 eq join ":", @{ $js->decode ('[{"a":4}]') });
39    
40     $js->filter_json_object (sub { });
41     ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b});
42     ok (6 eq join ":", @{ $js->decode ('[{"a":4}]') });
43    
44     $js->filter_json_single_key_object (sub { });
45     ok (4 == $js->decode ('[{"a":4}]')->[0]{a});
46