X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F020_basic_yaml.t;h=f26e1835446b8e87a66340b26482b7bc763e7392;hb=81a84db6ebe5ec540d0035fc6d1104cc49c81e25;hp=36ee6053a79d3609529a86111607e347136f1f60;hpb=8d8356bb0a96c1c4e909b56c812b16fc82c7bbd2;p=gitmo%2FMooseX-Storage.git diff --git a/t/020_basic_yaml.t b/t/020_basic_yaml.t index 36ee605..f26e183 100644 --- a/t/020_basic_yaml.t +++ b/t/020_basic_yaml.t @@ -1,14 +1,20 @@ -#!/usr/bin/perl - +$|++; use strict; use warnings; use Test::More; +use Test::Deep; + +use Test::Requires { + 'YAML::Any' => 0.01, # skip all if not installed + 'YAML' => 0.01, + 'Test::Without::Module' => 0.01, +}; BEGIN { - eval "use Test::YAML::Valid"; - plan skip_all => "Test::YAML::Valid is required for this test" if $@; - plan tests => 12; + Test::Without::Module->import(YAML::Any->order); + Test::Without::Module->unimport('YAML'); + plan tests => 10; use_ok('MooseX::Storage'); } @@ -38,94 +44,24 @@ BEGIN { object => Foo->new( number => 2 ), ); isa_ok( $foo, 'Foo' ); - + my $yaml = $foo->freeze; - - yaml_string_ok($yaml, '... we got valid YAML out of it'); - - is( - $yaml, - q{--- -__CLASS__: Foo -array: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 -float: 10.5 -hash: - 1: ~ - 10: ~ - 2: ~ - 3: ~ - 4: ~ - 5: ~ - 6: ~ - 7: ~ - 8: ~ - 9: ~ -number: 10 -object: - __CLASS__: Foo - number: 2 -string: foo -}, - '... got the same YAML'); - -} -{ - my $foo = Foo->thaw(q{--- -__CLASS__: Foo -array: - - 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 -float: 10.5 -hash: - 1: ~ - 10: ~ - 2: ~ - 3: ~ - 4: ~ - 5: ~ - 6: ~ - 7: ~ - 8: ~ - 9: ~ -number: 10 -object: - __CLASS__: Foo - number: 2 -string: foo -}); - isa_ok( $foo, 'Foo' ); + my $bar = Foo->thaw( $yaml ); + isa_ok( $bar, 'Foo' ); - 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( - $foo->hash, + is( $bar->number, 10, '... got the right number' ); + is( $bar->string, 'foo', '... got the right string' ); + is( $bar->float, 10.5, '... got the right float' ); + cmp_deeply( $bar->array, [ 1 .. 10 ], '... got the right array' ); + cmp_deeply( + $bar->hash, { map { $_ => undef } ( 1 .. 10 ) }, '... got the right hash' ); - isa_ok( $foo->object, 'Foo' ); - is( $foo->object->number, 2, + isa_ok( $bar->object, 'Foo' ); + is( $bar->object->number, 2, '... got the right number (in the embedded object)' ); }