summaryrefslogtreecommitdiff
path: root/t/006-returned-error.t
diff options
context:
space:
mode:
Diffstat (limited to 't/006-returned-error.t')
-rw-r--r--t/006-returned-error.t48
1 files changed, 48 insertions, 0 deletions
diff --git a/t/006-returned-error.t b/t/006-returned-error.t
new file mode 100644
index 0000000..9601517
--- /dev/null
+++ b/t/006-returned-error.t
@@ -0,0 +1,48 @@
+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");
+ my ($r, $e) = try_load_class('Class::Load::OK');
+ is($e, undef);
+}
+
+{
+ ok(!try_load_class('Class::Load::Nonexistent'), "didn't load class Nonexistent");
+ my ($r, $e) = try_load_class('Class::Load::Nonexistent');
+ like($e, qr{^Can't locate Class/Load/Nonexistent.pm in \@INC});
+}
+
+{
+ ok(try_load_class('Class::Load::OK'), "loaded class OK");
+ my ($r, $e) = try_load_class('Class::Load::OK');
+ is($e, undef);
+}
+
+{
+ ok(!try_load_class('Class::Load::SyntaxError'), "didn't load class SyntaxError");
+ delete $INC{'Class/Load/SyntaxError.pm'};
+ my ($r, $e) = try_load_class('Class::Load::SyntaxError');
+ like($e, 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'));
+
+{
+ $@ = "foo";
+ ok(try_load_class('Class::Load::OK'), "loaded class OK");
+ is($@, "foo");
+}
+
+{
+ $@ = "foo";
+ ok(!try_load_class('Class::Load::Nonexistent'), "didn't load class Nonexistent");
+ is($@, "foo");
+}
+
+done_testing;