Branch Coverage

blib/lib/OpenAPI/Modern.pm
Criterion Covered Total %
branch 146 158 92.4


line true false branch
191 2 58 if (my $request = $response->$OpenAPI::Modern::_call_if_can("request"))
193 0 2 if $request and $options->{'request'} and $request != $options->{'request'}
275 180 66 if $options->{'request'}
283 180 66 $options->{'request'} ? :
286 3 243 if ($options->{'request'} and my $error = $options->{'request'}->error)
294 64 179 if (exists $options->{'method'}) { }
175 4 elsif ($options->{'request'}) { }
297 2 62 if $options->{'request'} and lc $options->{'request'}->method ne $method
304 20 221 if (exists $options->{'operation_id'})
307 2 18 unless $operation_path
308 2 16 unless $operation_path =~ m[^/paths/]u
314 2 14 if exists $options->{'path_template'} and $options->{'path_template'} ne $path_template
318 4 10 if $options->{'method'} and lc $options->{'method'} ne $method
324 2 229 unless $method
328 178 51 if (exists $options->{'path_template'})
332 4 174 unless $path_item
336 2 172 unless $path_item->{$method}
340 41 2 if (not $path_template and $options->{'request'} and my $uri_path = $options->{'request'}->url->path)
343 0 41 if exists $schema->{'servers'} and @{$schema->{'servers'}}
349 7 36 unless $uri_path =~ /^$path_pattern$/u
360 2 34 unless is_elements_unique(\@capture_names, $indexes)
364 2 32 if $options->{'path_captures'} and not is_equal($options->{'path_captures'}, \%path_captures)
369 2 30 unless exists $schema->{'paths'}{$path_template}{$method}
372 26 4 unless defined $options->{'operation_id'}
380 2 180 unless $path_template
390 4 176 if exists $options->{'path_captures'} and not is_equal([sort(keys %{$$options{"path_captures"}})], [sort(@capture_names)])
392 58 118 unless ($options->{'request'})
395 54 4 unless defined $options->{'operation_id'}
407 6 2 exists $options->{'path_template'} ? :
8 110 unless $uri_path =~ /^$path_pattern$/u
416 2 108 if exists $options->{'path_captures'} and not is_equal([map(($_ . ""), @$options->{'path_captures'}{@capture_names})], \@capture_values)
421 100 8 unless defined $options->{'operation_id'}
431 2 18 unless exists $$path_captures{$param_obj->{'name'}}
445 52 47 unless (exists $$query_params{$param_obj->{'name'}})
447 2 50 if $param_obj->{'required'}
453 1 46 if $param_obj->{'allowReserved'} // 0
460 3 49 if grep((fc $header_name eq fc $_), ("Accept", "Content-Type", "Authorization"))
465 8 41 unless (@$headers)
467 6 2 if $header_obj->{'required'}
479 24 80 if (exists $param_obj->{'content'})
481 0 24 if keys %{$$param_obj{"content"}} > 1
486 4 20 unless ($media_type_decoder)
488 2 2 XXX ? :
2 2 if XXX ? !keys(%$schema) : $schema
514 4 80 unless length $content_type
519 16 22 if m[([^/]+)/\*$]u
520 12 4 if not defined $media_type and exists $content_obj->{'*/*'}
521 4 76 unless defined $media_type
524 0 76 if (exists $content_obj->{$media_type}{'encoding'})
530 0 0 unless exists +($content_obj->{$media_type}{'schema'}{'properties'} // {})->{$property}
535 0 0 if $content_type =~ m[^multipart/]u or $content_type eq "application/x-www-form-urlencoded"
543 10 66 if ($content_type =~ m[^text/]u and my $charset = $message->content->charset)
558 12 60 if $media_type eq "*/*"
559 4 68 unless ($media_type_decoder)
561 2 2 XXX ? :
0 4 if not defined $schema or XXX ? !keys(%$schema) : $schema
575 2 62 unless defined $schema
590 11 173 $exception ? :
45 139 !@{$state->{'errors'}} ? :
597 10 82 unless $schema_info
601 2 80 if $state->{'depth'}++ > $self->evaluator->max_traversal_depth
604 2 78 if $schema_info->{'document'}->get_entity_at_location($schema_info->{'document_path'}) ne $entity_type
616 18 138 unless (XXX)
617 2 16 if $schema
620 6 0 $location[-2] eq 'header' ? :
2 6 $location[-2] eq 'path' ? :
2 8 $location[-2] eq 'query' ? :
6 10 $location[-1] eq 'body' ? :
629 6 132 unless keys %$schema
632 18 114 if (XXX and exists $schema->{'type'} and not XXX and grep(($schema->{'type'} eq $_), ('number', 'integer')) and &looks_like_number($data)) { }
80 36 elsif (defined $data and not XXX) { }
661 88 92 if $request->isa("Mojo::Message::Request")
662 92 0 if ($request->isa("HTTP::Request"))
664 88 4 unless (defined $request->headers->content_length)
666 29 59 if $length
676 24 25 if $response->isa("Mojo::Message::Response")
677 25 0 if ($response->isa("HTTP::Response"))
679 20 5 unless (defined $response->headers->content_length)
681 10 10 if $length