--- trunk/t/01-frey-classloader.t 2008/07/15 18:06:27 137 +++ branches/zimbardo/t/01-Frey-Class-Loader.t 2009/07/05 21:40:16 1172 @@ -4,41 +4,79 @@ my $debug = @ARGV ? 1 : 0; -use Test::More tests => 13; +use Test::More tests => 33; use lib 'lib'; #use Devel::LeakTrace::Fast; use Data::Dump qw/dump/; BEGIN { - use_ok('Frey::ClassLoader'); + use_ok('Frey::Class::Loader'); } -ok( my $o = Frey::ClassLoader->new( debug => $debug ), 'new' ); -isa_ok( $o, 'Frey::ClassLoader' ); +ok( my $o = Frey::Class::Loader->new( debug => $debug ), 'new' ); +isa_ok( $o, 'Frey::Class::Loader' ); diag dump( $o ) if $debug; ok( $o->meta, 'has meta' ); #diag dump( $o->meta ); -is( $o->meta->name, 'Frey::ClassLoader', 'meta->name' ); +is( $o->meta->name, 'Frey::Class::Loader', 'meta->name' ); 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' => 0, - 'Frey::Web' => 1, + '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' => [ "switch_screen", "url_regex", "command" ], }; -foreach my $p ( keys %$test ) { - ok( my ( $meta, $is_role ) = $o->load_package( $p ), "load_package( $p )" ); - is( $is_role, $test->{$p}, 'check role' ); - diag $meta->dump(2) if $debug; +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" ); + } } +