File Coverage

blib/lib/JMAP/Tester/Abort.pm
Criterion Covered Total %
statement 23 23 100.0
branch 1 2 50.0
condition n/a
subroutine 6 6 100.0
pod 0 1 0.0
total 30 32 93.7


line stmt bran cond sub pod time code
1 2     2   21 use v5.20.0;
  2         5  
2             package JMAP::Tester::Abort 0.110;
3              
4 2     2   7 use Moo;
  2         2  
  2         13  
5             extends 'Throwable::Error';
6              
7 2     2   635 use experimental 'signatures';
  2         3  
  2         19  
8              
9 2     2   1100 use namespace::clean;
  2         26973  
  2         11  
10              
11             use Sub::Exporter -setup => {
12             exports => {
13             abort => sub {
14 5         659 my $pkg = shift;
15 8         143 return sub (@args) { die $pkg->new(@args) }
16 5         19 }
17             }
18 2     2   1780 };
  2         22501  
  2         24  
19              
20             around BUILDARGS => sub ($orig, $self, @args) {
21             return { message => $args[0] } if @args == 1 && ! ref $args[0];
22             return $self->$orig(@args);
23             };
24              
25             has message => (
26             is => 'ro',
27             required => 1,
28             );
29              
30             has diagnostics => (
31             is => 'ro',
32             );
33              
34 2     2 0 2668 sub as_test_abort_events ($self) {
  2         3  
  2         4  
35             return [
36             [ Ok => (pass => 0, name => $self->message) ],
37             ($self->diagnostics
38 2 50       11 ? (map {; [ Diag => (message => $_) ] } @{ $self->diagnostics })
  3         8  
  2         7  
39             : ()),
40             ];
41             }
42              
43             1;
44              
45             __END__