1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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;
|