File Coverage

blib/lib/Test2/AsyncSubtest/Event/Detach.pm
Criterion Covered Total %
statement 26 27 96.3
branch 4 4 100.0
condition n/a
subroutine 5 6 83.3
pod 2 2 100.0
total 37 39 94.8


line stmt bran cond sub pod time code
1             package Test2::AsyncSubtest::Event::Detach;
2 30     30   130538 use strict;
  30         61  
  30         672  
3 30     30   126 use warnings;
  30         44  
  30         1004  
4              
5             our $VERSION = '0.000019'; # TRIAL
6              
7 30     30   144 use base 'Test2::Event';
  30         58  
  30         1957  
8 30     30   215 use Test2::Util::HashBase qw/id/;
  30         107  
  30         262  
9              
10 0     0 1 0 sub no_display { 1 }
11              
12             sub callback {
13 143     143 1 10702 my $self = shift;
14 143         341 my ($hub) = @_;
15              
16 143         545 my $id = $self->{+ID};
17 143         421 my $ids = $hub->ast_ids;
18              
19 143 100       734 unless (defined $ids->{$id}) {
20 1         6 require Test2::Event::Exception;
21 1         7 my $trace = $self->trace;
22 1         9 $hub->send(
23             Test2::Event::Exception->new(
24             trace => $trace,
25             error => "Invalid AsyncSubtest detach ID: $id at " . $trace->debug . "\n",
26             )
27             );
28 1         171 return;
29             }
30              
31 142 100       686 unless (delete $ids->{$id}) {
32 1         9 require Test2::Event::Exception;
33 1         5 my $trace = $self->trace;
34 1         14 $hub->send(
35             Test2::Event::Exception->new(
36             trace => $trace,
37             error => "AsyncSubtest ID $id is not attached at " . $trace->debug . "\n",
38             )
39             );
40 1         129 return;
41             }
42             }
43              
44             1;
45              
46             __END__