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
|
#!/usr/bin/perl
# Test that subclassing works
package main;
use strict;
use warnings;
use Test::More tests => 2;
use Net::Traceroute;
package Net::Traceroute::Subclass;
use base qw(Net::Traceroute);
# This subclass lets Net::Traceroute allocate the ref.
sub new {
my $type = shift;
return $type->SUPER::new(@_);
}
package Net::Traceroute::SubclassAlloc;
use base qw(Net::Traceroute);
# This subclass allocates its own ref.
sub new {
my $type = shift;
my $self = bless {}, $type;
return $self->SUPER::new(@_);
}
package main;
isa_ok(Net::Traceroute::SubclassAlloc->new(), "Net::Traceroute::SubclassAlloc",
"SubclassAlloc returns a SubclassAlloc");
isa_ok(Net::Traceroute::Subclass->new(), "Net::Traceroute::Subclass",
"Subclass returns a Subclass");
|