use strict;
$^W++;
use Class::Prototyped qw(:REFLECT);
use Data::Dumper;
use Test;
BEGIN {
$|++;
plan tests => 12;
}
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Sortkeys = 1;
package A;
sub a {'A.a'}
package main;
my $p = Class::Prototyped->new();
my $pm = $p->reflect;
my $a = A->reflect;
my @slotNames = $a->slotNames;
ok( @slotNames, 1 );
ok( $slotNames[0], 'a' );
my @slots = $a->getSlots;
ok( scalar @slots, 2 );
ok( $slots[0]->[0], 'a' );
ok( $slots[0]->[1], 'METHOD');
ok( $a->getSlot('a') == UNIVERSAL::can( 'A', 'a' ) );
$a->addSlots( 'bb' => sub {'A.bb'} );
@slotNames = $a->slotNames;
ok( @slotNames, 2 );
my %slots = $a->getSlots(undef, 'simple');
ok( scalar keys %slots, 2 );
ok( defined( $slots{bb} ) );
ok( $a->getSlot('bb') == A->can('bb') );
ok( ref( $a->object ), 'A' );
ok( defined( UNIVERSAL::can( 'A', 'bb' ) ) );
# vim: ft=perl