Commit | Line | Data |
---|---|---|
0b09a93a PF |
1 | #!/usr/bin/perl -w |
2 | use strict; | |
3 | ||
4 | use FindBin; | |
5 | use Test::More 'no_plan'; | |
6 | ||
7 | use lib "$FindBin::Bin/lib"; | |
8 | ||
9 | use constant NO_SUCH_FILE => "this_file_had_better_not_exist_xyzzy"; | |
10 | ||
11 | ### Tests with non-existent exception class. | |
12 | ||
13 | my $open_success = eval { | |
14 | use autodie::test::missing qw(open); # Uses non-existent exceptions | |
15 | open(my $fh, '<', NO_SUCH_FILE); | |
16 | 1; | |
17 | }; | |
18 | ||
19 | is($open_success,undef,"Open should fail"); | |
20 | ||
21 | isnt($@,"",'$@ should not be empty'); | |
22 | ||
23 | is(ref($@),"",'$@ should not be a reference or object'); | |
24 | ||
25 | like($@, qr/Failed to load/, '$@ should contain bad exception class msg'); | |
26 | ||
27 | #### Tests with malformed exception class. | |
28 | ||
29 | my $open_success2 = eval { | |
30 | use autodie::test::badname qw(open); | |
31 | open(my $fh, '<', NO_SUCH_FILE); | |
32 | 1; | |
33 | }; | |
34 | ||
35 | is($open_success2,undef,"Open should fail"); | |
36 | ||
37 | isnt($@,"",'$@ should not be empty'); | |
38 | ||
39 | is(ref($@),"",'$@ should not be a reference or object'); | |
40 | ||
41 | like($@, qr/Bad exception class/, '$@ should contain bad exception class msg'); | |
42 | ||
43 | ### Tests with well-formed exception class (in Klingon) | |
44 | ||
45 | my $open_success3 = eval { | |
46 | use pujHa'ghach qw(open); #' <-- this makes my editor happy | |
47 | open(my $fh, '<', NO_SUCH_FILE); | |
48 | 1; | |
49 | }; | |
50 | ||
51 | is($open_success3,undef,"Open should fail"); | |
52 | ||
53 | isnt("$@","",'$@ should not be empty'); | |
54 | ||
55 | isa_ok($@, "pujHa'ghach::Dotlh", '$@ should be a Klingon exception'); | |
56 | ||
57 | like($@, qr/lujqu'/, '$@ should contain Klingon text'); |