4 if( $ENV{PERL_CORE} ) {
6 @INC = ('../lib', 'lib');
17 if( !eval "require overload" ) {
18 plan skip_all => "needs overload.pm";
29 q{""} => sub { $_[0]->{string} },
30 q{0+} => sub { $_[0]->{num} };
34 bless { string => shift, num => shift }, $class;
40 my $obj = Overloaded->new('foo', 42);
41 isa_ok $obj, 'Overloaded';
43 is $obj, 'foo', 'is() with string overloading';
44 cmp_ok $obj, 'eq', 'foo', 'cmp_ok() ...';
45 cmp_ok $obj, '==', 42, 'cmp_ok() with number overloading';
47 is_deeply [$obj], ['foo'], 'is_deeply with string overloading';
48 ok eq_array([$obj], ['foo']), 'eq_array ...';
49 ok eq_hash({foo => $obj}, {foo => 'foo'}), 'eq_hash ...';
52 is_deeply $obj, 'foo', 'is_deeply with string overloading at the top';
54 Test::More->builder->is_num($obj, 42);
55 Test::More->builder->is_eq ($obj, "foo");
61 use overload q{""} => sub { ::fail("This should not be called") };
64 ::is_deeply(['TestPackage'], ['TestPackage']);
65 ::is_deeply({'TestPackage' => 'TestPackage'},
66 {'TestPackage' => 'TestPackage'});
67 ::is_deeply('TestPackage', 'TestPackage');