%PDF- %PDF-
Direktori : /home/opti/optisoftcom/.cpanm/work/1544535406.20768/Class-XSAccessor-1.19/t/ |
Current File : /home/opti/optisoftcom/.cpanm/work/1544535406.20768/Class-XSAccessor-1.19/t/40hash_bad_call.t |
use strict; use warnings; use Test::More tests => 19; BEGIN { use_ok('Class::XSAccessor') }; package Hash; use Class::XSAccessor { accessors => [ qw(foo bar) ], constructor => 'new' }; package main; my $hash = Hash->new(); isa_ok $hash, 'Hash'; can_ok $hash, 'foo', 'bar'; $hash->foo('FOO'); $hash->bar('BAR'); is $hash->foo, 'FOO'; is $hash->bar, 'BAR'; my $ok; my $err; $ok = eval { Hash->foo; 1 }; $err = $@ || 'Zombie error'; ok(!$ok); like $err, qr{Class::XSAccessor: invalid instance method invocant: no hash ref supplied }; $ok = eval { Hash->bar; 1 }; $err = $@ || 'Zombie error'; ok(!$ok); like $err, qr{Class::XSAccessor: invalid instance method invocant: no hash ref supplied }; $ok = eval { Hash::foo() }; $err = $@ || 'Zombie error'; ok(!$ok); # package name introduced in 5.10.1 SKIP: { skip "Old perl behaves funny. You should upgrade.", 1 if $] < 5.010001; like $err, qr{Usage: (Hash::)?foo\(self, \.\.\.\) }; } $ok = eval { Hash::bar(); 1 }; $err = $@ || 'Zombie error'; ok(!$ok); SKIP: { skip "Old perl behaves funny. You should upgrade.", 1 if $] < 5.010001; like $err, qr{Usage: (Hash::)?bar\(self, \.\.\.\) }; } $ok = eval { Hash::foo( [] ); 1 }; $err = $@ || 'Zombie error'; ok(!$ok); like $err, qr{Class::XSAccessor: invalid instance method invocant: no hash ref supplied }; $ok = eval { Hash::bar( '' ); 1 }; $err = $@ || 'Zombie error'; ok(!$ok); like $err, qr{Class::XSAccessor: invalid instance method invocant: no hash ref supplied }; is Hash::foo($hash), 'FOO'; is Hash::bar($hash), 'BAR';