diff options
Diffstat (limited to 'third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t')
-rw-r--r-- | third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t b/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t new file mode 100644 index 0000000..18d09d4 --- /dev/null +++ b/third_party/JSON/JSON-2.59/t/e11_conv_blessed_univ.t @@ -0,0 +1,45 @@ + +use strict; +use Test::More; +BEGIN { plan tests => 3 }; + +BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; } + +use JSON -convert_blessed_universally; + + +my $obj = Test->new( [ 1, 2, {foo => 'bar'} ] ); + +$obj->[3] = Test2->new( { a => 'b' } ); + +my $json = JSON->new->allow_blessed->convert_blessed; + +is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' ); + +$json->convert_blessed(0); + +is( $json->encode( $obj ), 'null' ); + +$json->allow_blessed(0)->convert_blessed(1); + +is( $json->encode( $obj ), '[1,2,{"foo":"bar"},"hoge"]' ); + + +package Test; + +sub new { + bless $_[1], $_[0]; +} + + + +package Test2; + +sub new { + bless $_[1], $_[0]; +} + +sub TO_JSON { + "hoge"; +} + |