--- trunk/t/01-frey-classloader.t 2008/11/17 19:21:06 382 +++ trunk/t/01-Frey-Class-Loader.t 2009/01/05 23:16:13 929 @@ -4,23 +4,23 @@ my $debug = @ARGV ? 1 : 0; -use Test::More tests => 21; +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' ); @@ -30,21 +30,53 @@ ok( $o->classes, 'classes again' ); ok( my $available = $o->load_all_classes, 'load_all_classes' ); -isa_ok( $available, 'HASH' ); 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, - 'Moose' => 0, - 'Fey' => 0, + '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 $p ( keys %$test ) { - ok( my ( $meta, $is_role ) = $o->class_meta( $p ), "load_package( $p )" ); - is( $is_role, $test->{$p}, $is_role ? 'role' : 'not role' ); - diag $meta->dump(2) if $debug; +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" ); + } +} +