/[Frey]/trunk/t/01-frey-classloader.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

Contents of /trunk/t/01-frey-classloader.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 409 - (show annotations)
Tue Nov 18 13:52:26 2008 UTC (15 years, 5 months ago) by dpavlin
File MIME type: application/x-troff
File size: 1519 byte(s)
class_methods can now return hash for easy check of defined methods
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 my $debug = @ARGV ? 1 : 0;
6
7 use Test::More tests => 27;
8 use lib 'lib';
9
10 #use Devel::LeakTrace::Fast;
11 use Data::Dump qw/dump/;
12
13 BEGIN {
14 use_ok('Frey::ClassLoader');
15 }
16
17 ok( my $o = Frey::ClassLoader->new( debug => $debug ), 'new' );
18 isa_ok( $o, 'Frey::ClassLoader' );
19 diag dump( $o ) if $debug;
20
21 ok( $o->meta, 'has meta' );
22 #diag dump( $o->meta );
23 is( $o->meta->name, 'Frey::ClassLoader', 'meta->name' );
24
25 ok( defined $o->debug, 'debug' );
26
27 ok( my @classes = $o->classes, 'classes' );
28 diag dump( @classes ) if $debug;
29
30 ok( $o->classes, 'classes again' );
31
32 ok( my $available = $o->load_all_classes, 'load_all_classes' );
33 isa_ok( $available, 'HASH' );
34 diag dump( $available ) if $debug;
35
36 ok( $available->{$_}, "have $_" ) foreach ( qw/Frey Frey::Introspect Frey::Run/ );
37
38 # Module::Name => $is_role
39 my $test = {
40 'Frey' => 0,
41 'Frey::Web' => 1,
42 'Moose' => 0,
43 'Fey' => 0,
44 };
45
46 foreach my $p ( keys %$test ) {
47 ok( my ( $meta, $is_role ) = $o->class_meta( $p ), "load_package( $p )" );
48 is( $is_role, $test->{$p}, $is_role ? 'role' : 'not role' );
49 diag $meta->dump(2) if $debug;
50 }
51
52 my $methods = {
53 'Frey' => [],
54 'Frey::Editor' => [ 'url_regex', 'command' ],
55 };
56
57 foreach my $class ( keys %$methods ) {
58 ok( my @m = $o->class_methods($class), "class_methods( $class ) as array" );
59 diag dump( @m );
60 is_deeply( \@m, $methods->{$class}, 'without meta' );
61 foreach my $method ( @{ $methods->{$class} } ) {
62 ok( $o->class_methods($class)->{ $method }, "$class has $method" );
63 }
64 }

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26