xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/modules/Event/Exception.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1*5759b3d2Safresh1use strict;
2*5759b3d2Safresh1use warnings;
3*5759b3d2Safresh1use Test2::Tools::Tiny;
4*5759b3d2Safresh1use Test2::Event::Exception;
5*5759b3d2Safresh1
6*5759b3d2Safresh1my $exception = Test2::Event::Exception->new(
7*5759b3d2Safresh1    trace => {frame => []},
8*5759b3d2Safresh1    error => "evil at lake_of_fire.t line 6\n",
9*5759b3d2Safresh1);
10*5759b3d2Safresh1
11*5759b3d2Safresh1ok($exception->causes_fail, "Exception events always cause failure");
12*5759b3d2Safresh1
13*5759b3d2Safresh1is($exception->summary, "Exception: evil at lake_of_fire.t line 6", "Got summary");
14*5759b3d2Safresh1
15*5759b3d2Safresh1ok($exception->diagnostics, "Exception events are counted as diagnostics");
16*5759b3d2Safresh1
17*5759b3d2Safresh1my $facet_data = $exception->facet_data;
18*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data");
19*5759b3d2Safresh1
20*5759b3d2Safresh1is_deeply(
21*5759b3d2Safresh1    $facet_data->{errors},
22*5759b3d2Safresh1    [{
23*5759b3d2Safresh1        tag => 'ERROR',
24*5759b3d2Safresh1        fail => 1,
25*5759b3d2Safresh1        details => "evil at lake_of_fire.t line 6\n",
26*5759b3d2Safresh1    }],
27*5759b3d2Safresh1    "Got error facet",
28*5759b3d2Safresh1);
29*5759b3d2Safresh1
30*5759b3d2Safresh1my $hash = {an => 'error'};
31*5759b3d2Safresh1my $str = "$hash";
32*5759b3d2Safresh1
33*5759b3d2Safresh1$exception = Test2::Event::Exception->new(
34*5759b3d2Safresh1    trace => {frame => []},
35*5759b3d2Safresh1    error => $hash,
36*5759b3d2Safresh1);
37*5759b3d2Safresh1
38*5759b3d2Safresh1ok($exception->causes_fail, "Exception events always cause failure");
39*5759b3d2Safresh1
40*5759b3d2Safresh1is($exception->error, $str, "Got stringified exception");
41*5759b3d2Safresh1
42*5759b3d2Safresh1$facet_data = $exception->facet_data;
43*5759b3d2Safresh1ok($facet_data->{about}, "Got common facet data");
44*5759b3d2Safresh1
45*5759b3d2Safresh1is_deeply(
46*5759b3d2Safresh1    $facet_data->{errors},
47*5759b3d2Safresh1    [{
48*5759b3d2Safresh1        tag => 'ERROR',
49*5759b3d2Safresh1        fail => 1,
50*5759b3d2Safresh1        details => $str,
51*5759b3d2Safresh1    }],
52*5759b3d2Safresh1    "Got error facet",
53*5759b3d2Safresh1);
54*5759b3d2Safresh1
55*5759b3d2Safresh1done_testing;
56