refactor a bit
[gitmo/Package-Stash-XS.git] / t / isa.t
CommitLineData
b746972e 1#!/usr/bin/env perl
2use strict;
3use warnings;
c53d2df2 4use lib 't/lib';
b746972e 5use Test::More;
6
e94260da 7use Package::Stash;
b746972e 8
9{
10 package Foo;
11}
12
13{
14 package Bar;
672ffdba 15 sub bar { }
b746972e 16}
17
672ffdba 18{
19 my $stash = Package::Stash->new('Foo');
20 my @ISA = ('Bar');
21 @{$stash->get_or_add_symbol('@ISA')} = @ISA;
22 isa_ok('Foo', 'Bar');
23 isa_ok(bless({}, 'Foo'), 'Bar');
24}
25
26{
27 package Baz;
28 sub foo { }
29}
30
31{
32 my $stash = Package::Stash->new('Quux');
33 {
34 my $isa = $stash->get_or_add_symbol('@ISA');
35 @$isa = ('Baz');
36 isa_ok('Quux', 'Baz');
37 isa_ok(bless({}, 'Quux'), 'Baz');
38 ok(Quux->can('foo'));
39 }
40 {
41 my $isa = $stash->get_or_add_symbol('@ISA');
42 @$isa = ('Bar');
43 isa_ok('Quux', 'Bar');
44 isa_ok(bless({}, 'Quux'), 'Bar');
45 ok(Quux->can('bar'));
46 }
47}
b746972e 48
49done_testing;