/[Frey]/branches/zimbardo/t/01-Frey-Class-Loader.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /branches/zimbardo/t/01-Frey-Class-Loader.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/t/01-frey-classloader.t revision 137 by dpavlin, Tue Jul 15 18:06:27 2008 UTC trunk/t/01-Frey-Class-Loader.t revision 930 by dpavlin, Mon Jan 5 23:19:10 2009 UTC
# Line 4  use warnings; Line 4  use warnings;
4    
5  my $debug = @ARGV ? 1 : 0;  my $debug = @ARGV ? 1 : 0;
6    
7  use Test::More tests => 13;  use Test::More tests => 33;
8  use lib 'lib';  use lib 'lib';
9    
10  #use Devel::LeakTrace::Fast;  #use Devel::LeakTrace::Fast;
11  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
12    
13  BEGIN {  BEGIN {
14          use_ok('Frey::ClassLoader');          use_ok('Frey::Class::Loader');
15  }  }
16    
17  ok( my $o = Frey::ClassLoader->new( debug => $debug ), 'new' );  ok( my $o = Frey::Class::Loader->new( debug => $debug ), 'new' );
18  isa_ok( $o, 'Frey::ClassLoader' );  isa_ok( $o, 'Frey::Class::Loader' );
19  diag dump( $o ) if $debug;  diag dump( $o ) if $debug;
20    
21  ok( $o->meta, 'has meta' );  ok( $o->meta, 'has meta' );
22  #diag dump( $o->meta );  #diag dump( $o->meta );
23  is( $o->meta->name, 'Frey::ClassLoader', 'meta->name' );  is( $o->meta->name, 'Frey::Class::Loader', 'meta->name' );
24    
25  ok( defined $o->debug, 'debug' );  ok( defined $o->debug, 'debug' );
26    
27  ok( my $classes = $o->classes, 'classes' );  ok( my @classes = $o->classes, 'classes' );
28  diag dump( $classes ) if $debug;  diag dump( @classes ) if $debug;
29    
30  ok( $o->classes, 'classes again' );  ok( $o->classes, 'classes again' );
31    
32  ok( $o->load_all_classes, 'load_all_classes' );  ok( my $available = $o->load_all_classes, 'load_all_classes' );
33    diag dump( $available ) if $debug;
34    isa_ok( $available, 'HASH' );
35    
36    ok( $available->{$_}, "have $_" ) foreach ( qw/Frey Frey::Introspect Frey::Run/ );
37    
38  # Module::Name => $is_role  # Module::Name => $is_role
39  my $test = {  my $test = {
40          'Frey' => 0,          'Frey' => {
41          'Frey::Web' => 1,                  is_role => 0,
42            },
43            'Frey::Web' => {
44                    is_role => 1,
45            },
46            'Moose' => {
47                    is_role => 0,
48            },
49            'Fey' => {
50                    is_role => 0,
51            },
52            'Frey::Pipe' => {
53                    is_role => 0,
54                    runnable => [ 'as_markup' ],
55                    inputs => [ 'pipe' ],
56            },
57                    
58    };
59    
60    foreach my $class ( keys %$test ) {
61            ok( my ( $meta, $is_role ) = $o->class_meta( $class ), "load_package $class" );
62            is( $is_role, $test->{$class}->{is_role}, $is_role ? 'role' : 'not role' );
63            diag $meta->dump(1) if $debug;
64            my @runnable =  $o->class_runnable( $class );
65            is_deeply( \@runnable, $test->{$class}->{runnable}, "class_runnable $class" ) if @runnable || defined $test->{$class}->{runnable};
66            diag "runnable ",dump( @runnable );
67    }
68    
69    my $methods = {
70            'Frey::Config' => [ 'config', 'load_config' ],
71            'Frey::Editor' => [ "switch_screen", "url_regex", "command" ],
72  };  };
73    
74  foreach my $p ( keys %$test ) {  foreach my $class ( keys %$methods ) {
75          ok( my ( $meta, $is_role ) = $o->load_package( $p ), "load_package( $p )" );          ok( my @m = $o->class_methods($class), "class_methods( $class ) as array" );
76          is( $is_role, $test->{$p}, 'check role' );          diag dump( @m );
77          diag $meta->dump(2) if $debug;          is_deeply( \@m, $methods->{$class}, 'without meta' );
78            foreach my $method ( @{ $methods->{$class} } ) {
79                    ok( $o->class_methods($class)->{ $method }, "$class has $method" );
80            }
81  }  }
82    

Legend:
Removed from v.137  
changed lines
  Added in v.930

  ViewVC Help
Powered by ViewVC 1.1.26