X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F001_basic.t;h=1f961991a7813d1ad7db00e6be280d9e9409e04b;hb=619ab942be0a8bd8f530c57ca5b0c8d833cdc89b;hp=2a4026cd3b1115ea223ca75834a58beb9e29870d;hpb=ec9c19230a64659b0550d8bb3c3686f76ce42588;p=gitmo%2FMooseX-Storage.git diff --git a/t/001_basic.t b/t/001_basic.t index 2a4026c..1f96199 100644 --- a/t/001_basic.t +++ b/t/001_basic.t @@ -3,7 +3,8 @@ use strict; use warnings; -use Test::More no_plan => 1; +use Test::More tests => 14; +use Test::Deep; BEGIN { use_ok('MooseX::Storage'); @@ -15,40 +16,49 @@ BEGIN { use Moose; use MooseX::Storage; - with Storage(); + with Storage; - has 'number' => ( is => 'ro', isa => 'Int' ); - has 'string' => ( is => 'ro', isa => 'Str' ); - has 'float' => ( is => 'ro', isa => 'Num' ); - has 'array' => ( is => 'ro', isa => 'ArrayRef' ); - has 'hash' => ( is => 'ro', isa => 'HashRef' ); - has 'object' => ( is => 'ro', isa => 'Object' ); + has 'number' => ( is => 'ro', isa => 'Int' ); + has 'string' => ( is => 'ro', isa => 'Str' ); + has 'boolean' => ( is => 'ro', isa => 'Bool' ); + has 'float' => ( is => 'ro', isa => 'Num' ); + has 'array' => ( is => 'ro', isa => 'ArrayRef' ); + has 'hash' => ( is => 'ro', isa => 'HashRef' ); + has 'object' => ( is => 'ro', isa => 'Foo' ); + has 'union' => ( is => 'ro', isa => 'ArrayRef|Str' ); + has 'union2' => ( is => 'ro', isa => 'ArrayRef|Str' ); } { my $foo = Foo->new( - number => 10, - string => 'foo', - float => 10.5, - array => [ 1 .. 10 ], - hash => { map { $_ => undef } ( 1 .. 10 ) }, - object => Foo->new( number => 2 ), + number => 10, + string => 'foo', + boolean => 1, + float => 10.5, + array => [ 1 .. 10 ], + hash => { map { $_ => undef } ( 1 .. 10 ) }, + object => Foo->new( number => 2 ), + union => [ 1, 2, 3 ], + union2 => 'A String' ); isa_ok( $foo, 'Foo' ); - - is_deeply( + + cmp_deeply( $foo->pack, { - __class__ => 'Foo', + __CLASS__ => 'Foo', number => 10, string => 'foo', + boolean => 1, float => 10.5, array => [ 1 .. 10 ], hash => { map { $_ => undef } ( 1 .. 10 ) }, - object => { - __class__ => 'Foo', - number => 2 - }, + object => { + __CLASS__ => 'Foo', + number => 2 + }, + union => [ 1, 2, 3 ], + union2 => 'A String' }, '... got the right frozen class' ); @@ -57,25 +67,29 @@ BEGIN { { my $foo = Foo->unpack( { - __class__ => 'Foo', + __CLASS__ => 'Foo', number => 10, string => 'foo', + boolean => 1, float => 10.5, array => [ 1 .. 10 ], hash => { map { $_ => undef } ( 1 .. 10 ) }, - object => { - __class__ => 'Foo', - number => 2 - }, - } + object => { + __CLASS__ => 'Foo', + number => 2 + }, + union => [ 1, 2, 3 ], + union2 => 'A String' + } ); isa_ok( $foo, 'Foo' ); is( $foo->number, 10, '... got the right number' ); is( $foo->string, 'foo', '... got the right string' ); + ok( $foo->boolean, '... got the right boolean' ); 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' @@ -84,4 +98,6 @@ BEGIN { isa_ok( $foo->object, 'Foo' ); is( $foo->object->number, 2, '... got the right number (in the embedded object)' ); + cmp_deeply( $foo->union, [ 1 .. 3 ], '... got the right array (in the union)' ); + is( $foo->union2, 'A String', '... got the right string (in the union)' ); }