From: Dave Rolsky Date: Sat, 18 Feb 2012 16:51:39 +0000 (-0600) Subject: Add a test to make sure native array ->join accepts an object which overloads stringi... X-Git-Tag: 2.0500~94 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=48b6c41f9fe4ff286f381bb567b8e689942707f9;p=gitmo%2FMoose.git Add a test to make sure native array ->join accepts an object which overloads stringification --- diff --git a/t/native_traits/trait_array.t b/t/native_traits/trait_array.t index 086b143..f1f7b0c 100644 --- a/t/native_traits/trait_array.t +++ b/t/native_traits/trait_array.t @@ -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' );