4
use Test::More tests => 22;
5
BEGIN { use_ok('li_std_except') }
6
require_ok('li_std_except');
8
# adapted from ../java/li_std_except_runme.java
10
# these are not prescriptive tests, they just match the error classes I
11
# found are currently being issued, we may want to provide a more
12
# granular error api later, so don't let these tests stop code
15
my $test = new li_std_except::Test();
16
eval { $test->throw_bad_exception() };
17
like($@, qr/\bSystemError\b/, "throw_bad_exception");
18
eval { $test->throw_domain_error() };
19
like($@, qr/\bValueError\b/, "throw_domain_error");
20
like($@, qr/\boops\b/, "throw_domain_error message");
21
eval { $test->throw_exception() };
22
like($@, qr/\bSystemError\b/, "throw_exception");
23
eval { $test->throw_invalid_argument() };
24
like($@, qr/\bValueError\b/, "throw_invalid_argument");
25
like($@, qr/\boops\b/, "throw_invalid_argument message");
26
eval { $test->throw_length_error() };
27
like($@, qr/\bIndexError\b/, "throw_length_error");
28
like($@, qr/\boops\b/, "throw_length_error message");
29
eval { $test->throw_logic_error() };
30
like($@, qr/\bRuntimeError\b/, "throw_logic_error");
31
like($@, qr/\boops\b/, "throw_logic_error message");
32
eval { $test->throw_out_of_range() };
33
like($@, qr/\bIndexError\b/, "throw_out_of_range");
34
like($@, qr/\boops\b/, "throw_out_of_range message");
35
eval { $test->throw_overflow_error() };
36
like($@, qr/\bOverflowError\b/, "throw_overflow_error");
37
like($@, qr/\boops\b/, "throw_overflow_error message");
38
eval { $test->throw_range_error() };
39
like($@, qr/\bOverflowError\b/, "throw_range_error");
40
like($@, qr/\boops\b/, "throw_range_error message");
41
eval { $test->throw_runtime_error() };
42
like($@, qr/\bRuntimeError\b/, "throw_runtime_error");
43
like($@, qr/\boops\b/, "throw_runtime_error message");
44
eval { $test->throw_underflow_error() };
45
like($@, qr/\bOverflowError\b/, "throw_underflow_error");
46
like($@, qr/\boops\b/, "throw_underflow_error message");