Branch Coverage

blib/lib/JSONSchema/Validator/OAS30.pm
Criterion Covered Total %
branch 102 132 77.2


line true false branch
47 0 110 unless $direction
48 0 110 if $direction ne "request" and $direction ne "response"
51 0 110 unless defined $schema
53 32 78 if $scope
63 32 78 if $scope
71 62 437 if $schema->{'$ref'}
73 2 435 if $schema->{'deprecated'} and not $self->validate_deprecated
75 52 383 if (grep {$_ eq "discriminator";} keys %$schema)
77 28 24 unless $status
90 0 21 unless my $openapi_path = $params{'openapi_path'}
97 0 21 unless $base_ptr
107 0 21 unless $operation_ptr
110 1 20 if ($operation_ptr->xget("deprecated"))
112 1 0 unless $self->validate_deprecated
121 7 13 unless $r
126 4 16 unless $r
135 0 21 unless my $openapi_path = $params{'openapi_path'}
136 0 21 unless my $http_status = $params{'status'}
143 0 21 unless $base_ptr
146 1 20 if ($base_ptr->xget("deprecated"))
148 1 0 unless $self->validate_deprecated
152 0 20 unless $responses_ptr
155 2 18 unless $status_ptr
157 0 20 unless ($status_ptr)
167 0 20 unless $r
171 5 15 unless $exists
174 7 8 unless ($r)
178 0 15 if @$warnings
187 6 14 unless $body_ptr
190 0 14 unless $user_body and @$user_body
194 1 13 unless ($exists)
196 0 1 if ($required)
204 4 9 if @$errors
205 0 13 if @$warnings
213 55 45 unless %{$schema_params->{$type};}
215 6 39 unless $get_user_param->{$type}
217 7 32 unless $r
230 9 57 if not $exists and $type eq "header"
232 17 49 unless ($exists)
233 2 15 if ($data_ptr->xget("required"))
240 1 48 if ($data_ptr->xget("deprecated"))
242 1 0 unless $self->validate_deprecated
245 0 48 unless $data_ptr->xget("schema") or $data_ptr->xget("content")
247 48 0 if ref $value ne "ARRAY"
252 39 9 if ($data_ptr->xget('schema')) { }
9 0 elsif ($data_ptr->xget('content')) { }
264 5 43 unless ($r)
268 0 48 if @$warnings
283 1 36 unless $content_ptr
286 27 9 if ($content_type) { }
288 0 27 unless ($ctype_ptr)
294 0 9 unless scalar @keys == 1
300 9 27 unless (ref $data)
301 9 0 if (index($content_type, "application/json") != -1)
310 5 25 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 37 unless ref $ptr->value
352 25 12 if (ref $ptr->value eq 'ARRAY') { }
12 0 elsif (ref $ptr->value eq 'HASH') { }
376 99 69 unless $parameters->{$type}
378 0 69 if (ref $parameters->{$type} eq 'CODE') { }
69 0 elsif (ref $parameters->{$type} eq 'HASH') { }
382 27 42 if $type eq "header"