#!/usr/bin/perl use strict; use warnings; ################################################################################ # A class for testing the loader { package MyTestClass; sub new { my ($class) = @_; return bless(\do{my $annon_scalar}, $class); } } use Test::More qw{no_plan}; main(); sub main { use_ok('Fcm::Util::ClassLoader'); test_normal(); test_bad(); } ################################################################################ # Tests loading classes that should load OK sub test_normal { my $prefix = 'normal'; my @CLASSES = ( 'Fcm::CLI::Config', 'Fcm::Exception', 'Fcm::CLI::Config', # repeat 'MyTestClass', ); for my $class (@CLASSES) { ok(Fcm::Util::ClassLoader::load($class), "$prefix: load $class"); } } ################################################################################ # Tests loading classes that should fail sub test_bad { my $prefix = 'bad'; my @CLASSES = ('Foo', 'Bar', 'Baz', 'No::Such::Class', 'Foo'); for my $class (@CLASSES) { eval { Fcm::Util::ClassLoader::load($class); }; isa_ok($@, 'Fcm::Exception', "$prefix: load $class"); } } __END__