1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
#!/usr/bin/env perl
#
# Test the can() relations
#
use strict;
use warnings;
use Test;
use lib 't', '.', 't/testmods', 'testmods';
use C::D::E;
BEGIN { plan tests => 26 }
my $obj = C::D->new;
ok($obj);
ok(defined $obj->can('c'));
ok(not $obj->can('c_d_e'));
ok(defined $obj->can('a_b'));
ok(defined $obj->can('a'));
ok(defined C::D::E->can('c_d_e'));
ok(defined C::D::E->can('c_d'));
ok(defined C::D::E->can('c'));
ok(defined C::D->can('c_d'));
ok(defined C::D->can('c'));
ok(defined C->can('c'));
ok(defined C::D::E->can('a_b'));
ok(defined C::D::E->can('a'));
ok(defined C::D->can('a_b'));
ok(defined C::D->can('a'));
ok(not defined C->can('a_b'));
ok(not defined C->can('a'));
ok(not defined A::B->can('c_d'));
ok(not defined A::B->can('c'));
ok(not defined A->can('c_d'));
ok(not defined A->can('c'));
ok(defined C::D->can('willRealize'));
ok(defined C::D::E->can('willRealize'));
ok(!defined C->can('willRealize'));
ok(C::D->willRealize eq 'A::B');
ok(C::D::E->willRealize eq 'A::B');
|