Add a test to make sure native array ->join accepts an object which overloads stringi...
Dave Rolsky [Sat, 18 Feb 2012 16:51:39 +0000 (10:51 -0600)]
t/native_traits/trait_array.t

index 086b143..f1f7b0c 100644 (file)
@@ -108,6 +108,19 @@ use Test::Moose;
 }
 
 {
+    package OverloadStr;
+    use overload
+        q{""} => sub { ${ $_[0] } },
+        fallback => 1;
+
+    sub new {
+        my $class = shift;
+        my $str   = shift;
+        return bless \$str, $class;
+    }
+}
+
+{
     run_tests(build_class);
     run_tests( build_class( lazy => 1, default => sub { [ 42, 84 ] } ) );
     run_tests( build_class( trigger => sub { } ) );
@@ -563,6 +576,11 @@ sub run_tests {
             'join returns expected result when joining with empty string'
         );
 
+        is(
+            $obj->join( OverloadStr->new(q{}) ), '1234',
+            'join returns expected result when joining with empty string'
+        );
+
         like( exception { $obj->join }, qr/Cannot call join without at least 1 argument/, 'throws an error when passing no arguments to join' );
 
         like( exception { $obj->join( '-', 2 ) }, qr/Cannot call join with more than 1 argument/, 'throws an error when passing two arguments to join' );