More tests for array refs to make sure we test all code generation paths
Dave Rolsky [Sat, 25 Sep 2010 19:51:45 +0000 (14:51 -0500)]
t/070_native_traits/010_trait_array.t

index 7271f41..fbad78b 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 
 use Moose ();
+use Moose::Util::TypeConstraints;
 use Test::More;
 use Test::Exception;
 use Test::Moose;
@@ -88,6 +89,15 @@ use Test::Moose;
 {
     run_tests(build_class);
     run_tests( build_class( lazy => 1, default => sub { [ 42, 84 ] } ) );
+
+    # Will force the inlining code to check the entire arrayref when it is modified.
+    subtype 'MyArrayRef', as 'ArrayRef', where { 1 };
+
+    run_tests( build_class( isa => 'MyArrayRef' ) );
+
+    coerce 'MyArrayRef', from 'ArrayRef', via { $_ };
+
+    run_tests( build_class( isa => 'MyArrayRef', coerce => 1 ) );
 }
 
 sub run_tests {