File: 02-inheritance.t

package info (click to toggle)
libclass-unload-perl 0.07-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 136 kB
  • sloc: perl: 113; makefile: 2
file content (29 lines) | stat: -rw-r--r-- 747 bytes parent folder | download | duplicates (3)
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
#!perl -T

use Class::Unload;
use lib 't/lib';

use Test::More tests => 6; 

require MyClass::Child;

can_ok( 'MyClass::Child', 'parent_method' );
can_ok( 'MyClass::Child', 'child_method' );

Class::Unload->unload('MyClass::Child');

for my $method ( qw/ parent_method child_method/ ) {
    eval { MyClass::Child->$method };
    like( $@, qr/Can't locate object method "$method" via package "MyClass::Child"/,
          "$method on unloaded class fails");
}

require MyClass::Child;

Class::Unload->unload('MyClass::Parent');

can_ok( 'MyClass::Child', 'child_method' );
eval { MyClass::Child->parent_method };
like( $@, qr/Can't locate object method "parent_method" via package "MyClass::Child"/,
      "method on unloaded parent class fails");