use strict;
$^W++;
use Class::Prototyped qw(:REFLECT);
use Data::Dumper;
use Test;
BEGIN {
$|++;
plan tests => 5;
}
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Sortkeys = 1;
package A;
sub a {'A.a'}
sub aa {'A.aa'}
package B;
@B::ISA = 'A';
sub aa {'B.aa'}
sub b {'B.b'}
package C;
@C::ISA = qw(B A);
sub aa {'C.aa'}
sub c {'C.c'}
package D;
@D::ISA = qw(C C B B A A);
sub aa {'D.aa'}
sub d {'D.d'}
package main;
sub sorted { join('|', sort(@_)) }
my $p = Class::Prototyped->new();
my $pm = $p->reflect;
my $am = Class::Prototyped::reflect('A');
my $bm = Class::Prototyped::reflect('B');
my $cm = Class::Prototyped::reflect('C');
my $dm = Class::Prototyped::reflect('D');
my @a;
ok( sorted( @a = $pm->slotNames), '' );
ok( sorted( @a = $am->slotNames), 'a|aa' );
ok( sorted( @a = $bm->slotNames), 'A*|aa|b' );
ok( sorted( @a = $cm->slotNames), 'A*|B*|aa|c' );
ok( sorted( @a = $dm->slotNames), 'A*|A1*|B*|B1*|C*|C1*|aa|d' );
# vim: ft=perl