--- JSON-XS/t/12_blessed.t 2007/07/01 22:20:00 1.1 +++ JSON-XS/t/12_blessed.t 2007/07/02 02:57:11 1.3 @@ -1,4 +1,4 @@ -BEGIN { $| = 1; print "1..6\n"; } +BEGIN { $| = 1; print "1..16\n"; } use JSON::XS; @@ -25,3 +25,26 @@ ok ($js->encode ($o1) eq '{"__":""}'); ok ($js->encode ($o2) eq "null"); +$js->filter_json_object (sub { 5 }); +$js->filter_json_single_key_object (a => sub { shift }); +$js->filter_json_single_key_object (b => sub { 7 }); + +ok ("ARRAY" eq ref $js->decode ("[]")); +ok (5 eq join ":", @{ $js->decode ('[{}]') }); +ok (6 eq join ":", @{ $js->decode ('[{"a":6}]') }); +ok (5 eq join ":", @{ $js->decode ('[{"a":4,"b":7}]') }); + +$js->filter_json_object; +ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b}); +ok (3 eq join ":", @{ $js->decode ('[{"a":3}]') }); + +$js->filter_json_object (sub { }); +ok (7 == $js->decode ('[{"a":4,"b":7}]')->[0]{b}); +ok (9 eq join ":", @{ $js->decode ('[{"a":9}]') }); + +$js->filter_json_single_key_object ("a"); +ok (4 == $js->decode ('[{"a":4}]')->[0]{a}); + +$js->filter_json_single_key_object (a => sub { }); +ok (4 == $js->decode ('[{"a":4}]')->[0]{a}); +