Branch Coverage

blib/lib/Venus/Future.pm
Criterion Covered Total %
branch 97 156 62.1


line true false branch
41 81 2 unless exists $data->{'promise'}
49 0 2 if UNIVERSAL::isa($result, "Venus::Error")
67 3 0 ref $on_finally eq 'CODE' ? :
70 0 3 if ($is_resolvable and $self->is_fulfilled) { }
0 3 elsif ($is_rejectable and $self->is_rejected) { }
79 3 0 if ($is_resolvable and $is_rejectable)
90 0 14 unless $self->is_pending
94 1 13 if $is_suspended
96 1 0 $self->is_fulfilled ? :
1 13 if $is_suspended
98 0 13 unless $self->{'promise'}
106 1 12 $self->is_pending ? :
114 3 0 $self->$method ? :
3 0 $self->can($method) ? :
122 15 27 $status && $status eq $FULFILLED ? :
130 123 48 $status && $status eq $PENDING ? :
136 1 2 exists $self->{'promise'} ? :
144 7 13 $status && $status eq $REJECTED ? :
150 2 3 exists $self->{'resuming'} ? :
156 6 118 exists $self->{'resume'} ? :
158 118 6 unless $has_resume
160 6 0 defined $self->{'resume'}{'method'} ? :
162 0 6 unless $has_method
164 6 0 defined $self->{'resume'}{'position'} ? :
166 0 6 unless $has_position
168 6 0 exists $self->{'resume'}{'value'} ? :
170 0 6 unless $has_value
178 0 41 if @_ < 2
184 15 26 unless $blessed
186 25 1 $value->isa('Venus::Future') ? :
188 25 1 if $is_future
190 1 0 $value->can('then') ? :
206 0 0 if $self->can($method)
215 3 0 if $code
223 19 0 if $code
231 7 0 if $code
239 15 1 if $code
247 0 16 unless $self->is_pending
251 0 16 if ($self->is_suspended)
256 0 0 if $is_future and $future->is_pending
257 0 0 if $is_future and $future->is_fulfilled
262 0 0 $is_future && $future->is_fulfilled ? :
275 2 0 $self->is_thenable($future) && $future->isa('Venus::Future') ? :
277 0 2 if ($is_future and $future->is_pending)
280 0 2 if ($is_future and $future->is_pending)
286 0 16 if $self->is_suspended
305 0 39 unless $self->is_pending
309 1 38 if ($self->is_suspended)
314 0 1 if $is_future and $future->is_pending
315 0 1 if $is_future and $future->is_rejected
320 1 0 $is_future && $future->is_fulfilled ? :
333 18 0 $self->is_thenable($future) && $future->isa('Venus::Future') ? :
335 4 14 if ($is_future and $future->is_pending)
338 3 15 if ($is_future and $future->is_pending)
344 4 35 if $self->is_suspended
363 2 3 unless my $resume = delete $self->{'resume'}
400 7 16 ref $on_reject eq 'CODE' ? :
401 19 4 ref $on_fulfill eq 'CODE' ? :
403 0 23 if ($is_resolvable and $self->is_fulfilled) { }
0 23 elsif ($is_rejectable and $self->is_rejected) { }
412 19 4 if ($is_resolvable and $self->is_pending)
415 7 16 if ($is_rejectable and $self->is_pending)
429 2 0 if (ref $on_finally eq 'CODE') { }
432 0 2 if ($self->is_thenable($result)) { }
433 0 0 if ($self->is_resuming) { }
0 0 elsif ($result->isa('Venus::Future') and $result->is_fulfilled) { }
459 17 0 if (ref $on_fulfill eq 'CODE') { }
462 5 12 if ($self->is_thenable($result)) { }
463 2 3 if ($self->is_resuming) { }
1 2 elsif ($result->isa('Venus::Future') and $result->is_fulfilled) { }
489 1 0 if (ref $on_reject eq 'CODE') { }
492 0 1 if ($self->is_thenable($result)) { }
493 0 0 if ($self->is_resuming) { }
0 0 elsif ($result->isa('Venus::Future') and $result->is_fulfilled) { }
522 2 0 if (defined $timeout) { }
527 1 0 if $seen = $self->fulfill
529 1 1 unless ($seen)
535 0 0 if $self->fulfill