ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/JSON-XS/t/12_blessed.t
Revision: 1.3
Committed: Mon Jul 2 02:57:11 2007 UTC (17 years ago) by root
Content type: application/x-troff
Branch: MAIN
CVS Tags: rel-2_01, rel-1_51, rel-1_53, rel-4_0, rel-2_222, rel-3_0, rel-4_01, rel-4_03, rel-4_02, rel-2_2, rel-2_3, rel-2_0, rel-2_1, rel-4_0_00, rel-2_34, rel-2_32, rel-2_33, rel-2_31, rel-1_5, rel-1_4, rel-2_2311, rel-3_01, rel-3_02, rel-3_03, rel-3_04, rel-1_43, rel-1_41, rel-2_232, rel-2_231, rel-2_29, rel-2_28, rel-2_21, rel-2_2222, rel-2_23, rel-2_22, rel-2_25, rel-2_24, rel-2_27, rel-2_26, HEAD
Changes since 1.2: +10 -6 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 BEGIN { $| = 1; print "1..16\n"; }
2
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 $js->filter_json_object (sub { 5 });
29 $js->filter_json_single_key_object (a => sub { shift });
30 $js->filter_json_single_key_object (b => sub { 7 });
31
32 ok ("ARRAY" eq ref $js->decode ("[]"));
33 ok (5 eq join ":", @{ $js->decode ('[{}]') });
34 ok (6 eq join ":", @{ $js->decode ('[{"a":6}]') });
35 ok (5 eq join ":", @{ $js->decode ('[{"a":4,"b":7}]') });
36
37 $js->filter_json_object;
38 ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b});
39 ok (3 eq join ":", @{ $js->decode ('[{"a":3}]') });
40
41 $js->filter_json_object (sub { });
42 ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b});
43 ok (9 eq join ":", @{ $js->decode ('[{"a":9}]') });
44
45 $js->filter_json_single_key_object ("a");
46 ok (4 == $js->decode ('[{"a":4}]')->[0]{a});
47
48 $js->filter_json_single_key_object (a => sub { });
49 ok (4 == $js->decode ('[{"a":4}]')->[0]{a});
50