--- trunk/t/01-frey-classloader.t 2008/07/11 22:54:42 101 +++ trunk/t/01-frey-classloader.t 2008/11/19 16:53:13 457 @@ -4,7 +4,7 @@ my $debug = @ARGV ? 1 : 0; -use Test::More tests => 9; +use Test::More tests => 32; use lib 'lib'; #use Devel::LeakTrace::Fast; @@ -24,9 +24,59 @@ ok( defined $o->debug, 'debug' ); -ok( my $classes = $o->classes, 'classes' ); -diag dump( $classes ) if $debug; +ok( my @classes = $o->classes, 'classes' ); +diag dump( @classes ) if $debug; ok( $o->classes, 'classes again' ); -ok( $o->load_all_classes, 'load_all_classes' ); +ok( my $available = $o->load_all_classes, 'load_all_classes' ); +diag dump( $available ) if $debug; +isa_ok( $available, 'HASH' ); + +ok( $available->{$_}, "have $_" ) foreach ( qw/Frey Frey::Introspect Frey::Run/ ); + +# Module::Name => $is_role +my $test = { + 'Frey' => { + is_role => 0, + }, + 'Frey::Web' => { + is_role => 1, + }, + 'Moose' => { + is_role => 0, + }, + 'Fey' => { + is_role => 0, + }, + 'Frey::Pipe' => { + is_role => 0, + runnable => [ 'as_markup' ], + inputs => [ 'pipe' ], + }, + +}; + +foreach my $class ( keys %$test ) { + ok( my ( $meta, $is_role ) = $o->class_meta( $class ), "load_package $class" ); + is( $is_role, $test->{$class}->{is_role}, $is_role ? 'role' : 'not role' ); + diag $meta->dump(1) if $debug; + my @runnable = $o->class_runnable( $class ); + is_deeply( \@runnable, $test->{$class}->{runnable}, "class_runnable $class" ) if @runnable || defined $test->{$class}->{runnable}; + diag "runnable ",dump( @runnable ); +} + +my $methods = { + 'Frey::Config' => [ 'config', 'load_config' ], + 'Frey::Editor' => [ 'url_regex', 'command' ], +}; + +foreach my $class ( keys %$methods ) { + ok( my @m = $o->class_methods($class), "class_methods( $class ) as array" ); + diag dump( @m ); + is_deeply( \@m, $methods->{$class}, 'without meta' ); + foreach my $method ( @{ $methods->{$class} } ) { + ok( $o->class_methods($class)->{ $method }, "$class has $method" ); + } +} +