X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F010_basic_json.t;h=f94acdb5a1c53f812dd294c43e12cee32f52de1e;hb=81a84db6ebe5ec540d0035fc6d1104cc49c81e25;hp=30b3327ee45559428d3803afc660c36e7181aa37;hpb=a7f358fb48a26700a3683db2a10a12660cf4a189;p=gitmo%2FMooseX-Storage.git diff --git a/t/010_basic_json.t b/t/010_basic_json.t index 30b3327..f94acdb 100644 --- a/t/010_basic_json.t +++ b/t/010_basic_json.t @@ -1,19 +1,15 @@ -#!/usr/bin/perl - use strict; use warnings; use Test::More; +use Test::Deep; + +use Test::Requires { + 'Test::JSON' => 0.01, # skip all if not installed + 'JSON::Any' => 0.01, +}; BEGIN { - eval "use Test::JSON"; - plan skip_all => "Test::JSON is required for this test" if $@; - # NOTE: - # this idiocy is cause Test::JSON - # uses JSON.pm and that can be - # very picky about the JSON output - # - SL - BEGIN { $ENV{JSON_ANY_ORDER} = qw(JSON) } plan tests => 12; use_ok('MooseX::Storage'); } @@ -49,11 +45,13 @@ BEGIN { is_valid_json($json, '.. this is valid JSON'); + is_json( $json, '{"array":[1,2,3,4,5,6,7,8,9,10],"hash":{"6":null,"3":null,"7":null,"9":null,"2":null,"8":null,"1":null,"4":null,"10":null,"5":null},"float":10.5,"object":{"number":2,"__CLASS__":"Foo"},"number":10,"__CLASS__":"Foo","string":"foo"}', '... got the right JSON' ); + } { @@ -66,8 +64,8 @@ BEGIN { is( $foo->number, 10, '... got the right number' ); is( $foo->string, 'foo', '... got the right string' ); is( $foo->float, 10.5, '... got the right float' ); - is_deeply( $foo->array, [ 1 .. 10 ], '... got the right array' ); - is_deeply( + cmp_deeply( $foo->array, [ 1 .. 10 ], '... got the right array' ); + cmp_deeply( $foo->hash, { map { $_ => undef } ( 1 .. 10 ) }, '... got the right hash'