ClassLoader.t 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. ################################################################################
  5. # A class for testing the loader
  6. {
  7. package MyTestClass;
  8. sub new {
  9. my ($class) = @_;
  10. return bless(\do{my $annon_scalar}, $class);
  11. }
  12. }
  13. use Test::More qw{no_plan};
  14. main();
  15. sub main {
  16. use_ok('Fcm::Util::ClassLoader');
  17. test_normal();
  18. test_bad();
  19. }
  20. ################################################################################
  21. # Tests loading classes that should load OK
  22. sub test_normal {
  23. my $prefix = 'normal';
  24. my @CLASSES = (
  25. 'Fcm::CLI::Config',
  26. 'Fcm::Exception',
  27. 'Fcm::CLI::Config', # repeat
  28. 'MyTestClass',
  29. );
  30. for my $class (@CLASSES) {
  31. ok(Fcm::Util::ClassLoader::load($class), "$prefix: load $class");
  32. }
  33. }
  34. ################################################################################
  35. # Tests loading classes that should fail
  36. sub test_bad {
  37. my $prefix = 'bad';
  38. my @CLASSES = ('Foo', 'Bar', 'Baz', 'No::Such::Class', 'Foo');
  39. for my $class (@CLASSES) {
  40. eval {
  41. Fcm::Util::ClassLoader::load($class);
  42. };
  43. isa_ok($@, 'Fcm::Exception', "$prefix: load $class");
  44. }
  45. }
  46. __END__