54 lines
1.6 KiB
Perl
54 lines
1.6 KiB
Perl
|
|
use strict;
|
||
|
|
use warnings;
|
||
|
|
use Test::More tests => 9;
|
||
|
|
BEGIN { use_ok 'director_wombat' }
|
||
|
|
require_ok 'director_wombat';
|
||
|
|
|
||
|
|
{
|
||
|
|
package director_wombat_Foo_integers_derived;
|
||
|
|
use base 'director_wombat::Foo_integers';
|
||
|
|
sub meth { my($self, $param) = @_;
|
||
|
|
return $param + 2;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
{
|
||
|
|
package director_wombat_Foo_integers_derived_2;
|
||
|
|
use base 'director_wombat::Foo_integers';
|
||
|
|
}
|
||
|
|
{
|
||
|
|
package director_wombat_Bar_derived_1;
|
||
|
|
use base 'director_wombat::Bar';
|
||
|
|
sub foo_meth_ref { my($self, $foo_obj, $param) = @_;
|
||
|
|
die "foo_obj in foo_meth_ref is not director_wombat_Foo_integers_derived_2"
|
||
|
|
unless $foo_obj->isa('director_wombat_Foo_integers_derived_2');
|
||
|
|
}
|
||
|
|
sub foo_meth_ptr { my($self, $foo_obj, $param) = @_;
|
||
|
|
die "foo_obj in foo_meth_ptr is not director_wombat_Foo_integers_derived_2"
|
||
|
|
unless $foo_obj->isa('director_wombat_Foo_integers_derived_2');
|
||
|
|
}
|
||
|
|
sub foo_meth_val { my($self, $foo_obj, $param) = @_;
|
||
|
|
die "foo_obj in foo_meth_val is not director_wombat_Foo_integers_derived_2"
|
||
|
|
unless $foo_obj->isa('director_wombat_Foo_integers_derived_2');
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
my $b = director_wombat::Bar->new();
|
||
|
|
isa_ok $b, 'director_wombat::Bar';
|
||
|
|
my $a = $b->meth();
|
||
|
|
is $a->meth(49), 49;
|
||
|
|
|
||
|
|
$a = director_wombat_Foo_integers_derived->new();
|
||
|
|
isa_ok $a, 'director_wombat_Foo_integers_derived';
|
||
|
|
is $a->meth(62), 62 + 2;
|
||
|
|
|
||
|
|
$a = director_wombat_Foo_integers_derived_2->new();
|
||
|
|
isa_ok $a, 'director_wombat_Foo_integers_derived_2';
|
||
|
|
is $a->meth(37), 37;
|
||
|
|
|
||
|
|
$b = director_wombat_Bar_derived_1->new();
|
||
|
|
isa_ok $b, 'director_wombat_Bar_derived_1';
|
||
|
|
$b->foo_meth_ref($a, 0);
|
||
|
|
$b->foo_meth_ptr($a, 1);
|
||
|
|
$b->foo_meth_val($a, 2);
|
||
|
|
|