Branch Coverage

blib/lib/JSONSchema/Validator/OAS30.pm
Criterion Covered Total %
branch 102 130 78.4


line true false branch
47 0 121 unless $direction
48 0 121 if $direction ne "request" and $direction ne "response"
51 0 121 unless defined $schema
53 34 87 if $scope
63 34 87 if $scope
71 62 462 if $schema->{'$ref'}
73 2 460 if $schema->{'deprecated'} and not $self->validate_deprecated
75 52 408 if (grep {$_ eq "discriminator";} keys %$schema)
77 28 24 unless $status
90 0 22 unless my $openapi_path = $params{'openapi_path'}
97 0 22 unless $base_ptr
107 0 22 unless $operation_ptr
110 1 21 if ($operation_ptr->xget("deprecated"))
112 1 0 unless $self->validate_deprecated
121 8 13 unless $r
126 4 17 unless $r
135 0 22 unless my $openapi_path = $params{'openapi_path'}
136 0 22 unless my $http_status = $params{'status'}
143 0 22 unless $base_ptr
146 1 21 if ($base_ptr->xget("deprecated"))
148 1 0 unless $self->validate_deprecated
152 0 21 unless $responses_ptr
155 2 19 unless $status_ptr
157 0 21 unless ($status_ptr)
167 1 20 unless $r
171 5 16 unless $exists
174 7 9 unless ($r)
178 0 16 if @$warnings
187 6 15 unless $body_ptr
190 0 15 unless $user_body and @$user_body
194 2 13 unless ($exists)
196 0 2 if ($required)
204 4 9 if @$errors
205 0 13 if @$warnings
213 56 49 unless %{$schema_params->{$type};}
215 2 47 unless (exists $get_user_param->{$type})
221 7 40 unless $r
234 15 62 if not $exists and $type eq "header"
236 18 59 unless ($exists)
237 2 16 if ($data_ptr->xget("required"))
244 1 58 if ($data_ptr->xget("deprecated"))
246 1 0 unless $self->validate_deprecated
249 0 58 unless $data_ptr->xget("schema") or $data_ptr->xget("content")
253 42 16 if ($data_ptr->xget('schema')) { }
16 0 elsif ($data_ptr->xget('content')) { }
265 5 53 unless ($r)
269 0 58 if @$warnings
283 1 44 unless $content_ptr
286 28 16 if ($content_type) { }
288 0 28 unless ($ctype_ptr)
294 0 16 unless scalar @keys == 1
300 10 34 unless (ref $data)
301 10 0 if (index($content_type, "application/json") != -1)
310 5 27 if ($schema_prop_ptr and $content_type and index($content_type, 'application/x-www-form-urlencoded') != -1 || index($content_type, 'multipart/') != -1 and ref $data eq "HASH")
321 3 9 $property_ctype_ptr ? :
322 9 3 unless ($property_ctype)
324 2 7 $prop_type_ptr && $prop_type_ptr->value eq 'object' ? :
327 5 0 if (index($property_ctype, "application/json") != -1 and exists $data->{$property_name} and not ref $data->{$property_name})
350 24 40 unless ref $ptr->value
352 27 13 if (ref $ptr->value eq 'ARRAY') { }
13 0 elsif (ref $ptr->value eq 'HASH') { }
376 99 77 unless $parameters->{$type}
378 0 77 if (ref $parameters->{$type} eq 'CODE') { }
77 0 elsif (ref $parameters->{$type} eq 'HASH') { }
382 33 44 if $type eq "header"