Merge branch 'master' of gitmo@git.moose.perl.org:MooseX-Storage
[gitmo/MooseX-Storage.git] / t / 002_basic_w_subtypes.t
index ee78d14..dedec18 100644 (file)
@@ -3,12 +3,20 @@
 use strict;
 use warnings;
 
-use Test::More no_plan => 1;
+use Test::More tests => 11;
 
 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 +26,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 +66,20 @@ BEGIN {
         object => Foo->new( number => 2 ),
     );
     isa_ok( $foo, 'Foo' );
-    
+
     is_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,17 +88,17 @@ 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' );