More tests for Hash trait to ensure we test all code gen paths
Dave Rolsky [Sat, 25 Sep 2010 19:53:38 +0000 (14:53 -0500)]
t/070_native_traits/050_trait_hash.t

index 824f718..4a1cf76 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 
 use Moose ();
+use Moose::Util::TypeConstraints;
 use Test::Exception;
 use Test::More;
 use Test::Moose;
@@ -53,6 +54,15 @@ use Test::Moose;
 {
     run_tests(build_class);
     run_tests( build_class( lazy => 1, default => sub { { x => 1 } } ) );
+
+    # Will force the inlining code to check the entire hashref when it is modified.
+    subtype 'MyHashRef', as 'HashRef[Str]', where { 1 };
+
+    run_tests( build_class( isa => 'MyHashRef' ) );
+
+    coerce 'MyHashRef', from 'HashRef', via { $_ };
+
+    run_tests( build_class( isa => 'MyHashRef', coerce => 1 ) );
 }
 
 sub run_tests {