this is a shorter way of specifying the gitmo repository properly
[gitmo/MooseX-Storage.git] / t / 002_basic_w_subtypes.t
index ee78d14..4b5ee5f 100644 (file)
@@ -1,14 +1,21 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
-use Test::More no_plan => 1;
+use Test::More tests => 11;
+use Test::Deep;
 
 BEGIN {
     use_ok('MooseX::Storage');
 }
 
+=pod
+
+This extends the 001_basic test to
+show that subtypes will DWIM in most
+cases.
+
+=cut
+
 {
 
     package Foo;
@@ -18,25 +25,25 @@ BEGIN {
 
     use Scalar::Util 'looks_like_number';
 
-    with Storage();    
-    
-    subtype 'Natural' 
+    with Storage;
+
+    subtype 'Natural'
         => as 'Int'
         => where { $_ > 0 };
-        
-    subtype 'HalfNum' 
+
+    subtype 'HalfNum'
         => as 'Num'
-        => where { "$_" =~ /\.5$/ };    
-    
+        => where { "$_" =~ /\.5$/ };
+
     subtype 'FooString'
         => as 'Str'
         => where { lc($_) eq 'foo' };
-        
-    subtype 'IntArray' 
+
+    subtype 'IntArray'
         => as 'ArrayRef'
         => where { scalar grep { looks_like_number($_) } @{$_} };
 
-    subtype 'UndefHash' 
+    subtype 'UndefHash'
         => as 'HashRef'
         => where { scalar grep { !defined($_) } values %{$_} };
 
@@ -58,20 +65,20 @@ BEGIN {
         object => Foo->new( number => 2 ),
     );
     isa_ok( $foo, 'Foo' );
-    
-    is_deeply(
+
+    cmp_deeply(
         $foo->pack,
         {
-            __class__ => 'Foo',
+            __CLASS__ => 'Foo',
             number    => 10,
             string    => 'foo',
             float     => 10.5,
             array     => [ 1 .. 10 ],
             hash      => { map { $_ => undef } ( 1 .. 10 ) },
-            object    => { 
-                            __class__ => 'Foo',                
-                            number    => 2 
-                         },            
+            object    => {
+                            __CLASS__ => 'Foo',
+                            number    => 2
+                         },
         },
         '... got the right frozen class'
     );
@@ -80,25 +87,25 @@ BEGIN {
 {
     my $foo = Foo->unpack(
         {
-            __class__ => 'Foo',
+            __CLASS__ => 'Foo',
             number    => 10,
             string    => 'foo',
             float     => 10.5,
             array     => [ 1 .. 10 ],
             hash      => { map { $_ => undef } ( 1 .. 10 ) },
-            object    => { 
-                            __class__ => 'Foo',                
-                            number    => 2 
-                         },            
-        }        
+            object    => {
+                            __CLASS__ => 'Foo',
+                            number    => 2
+                         },
+        }
     );
     isa_ok( $foo, '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(
+    cmp_deeply( $foo->array, [ 1 .. 10 ], '... got the right array' );
+    cmp_deeply(
         $foo->hash,
         { map { $_ => undef } ( 1 .. 10 ) },
         '... got the right hash'