diff options
Diffstat (limited to 't/002-try-load-class.t')
-rw-r--r-- | t/002-try-load-class.t | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/t/002-try-load-class.t b/t/002-try-load-class.t new file mode 100644 index 0000000..a2f46c8 --- /dev/null +++ b/t/002-try-load-class.t @@ -0,0 +1,38 @@ +use strict; +use warnings; +use Test::More 0.88; +use lib 't/lib'; +use Test::Class::Load ':all'; + +ok(try_load_class('Class::Load::OK'), "loaded class OK"); +is($Class::Load::ERROR, undef); + +ok(!try_load_class('Class::Load::Nonexistent'), "didn't load class Nonexistent"); +like($Class::Load::ERROR, qr{^Can't locate Class/Load/Nonexistent.pm in \@INC}); + +ok(try_load_class('Class::Load::OK'), "loaded class OK"); +is($Class::Load::ERROR, undef); + +ok(!try_load_class('Class::Load::SyntaxError'), "didn't load class SyntaxError"); +like($Class::Load::ERROR, qr{^Missing right curly or square bracket at }); + +ok(is_class_loaded('Class::Load::OK')); +ok(!is_class_loaded('Class::Load::Nonexistent')); +ok(!is_class_loaded('Class::Load::SyntaxError')); + +do { + package Class::Load::Inlined; + sub inlined { 1 } +}; + +ok(try_load_class('Class::Load::Inlined'), "loaded class Inlined"); +is($Class::Load::ERROR, undef); +ok(is_class_loaded('Class::Load::Inlined')); + +ok(!try_load_class('Class::Load::VersionCheck', { -version => 43 })); +ok(try_load_class('Class::Load::VersionCheck', { -version => 41 })); + +ok(try_load_class('Class::Load::VersionCheck2', { -version => 41 })); +ok(!try_load_class('Class::Load::VersionCheck2', { -version => 43 })); + +done_testing; |