Condition Coverage

File:blib/lib/Params/Validate/Strict.pm
Coverage:76.7%

line%coveragecondition
1012100
ABdec
000
011
1X1
$params->{'schema'} || $params->{'members'}
1013100
ABdec
000
011
1X1
$params->{'args'} || $params->{'input'}
1039100
Adec
00
11
$params->{'description'} || 'validate_strict'
104225
ABCdec
0XX0
1000
1011
11X1
$schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'}
1052100
ABdec
0X0
100
111
ref $args ne "HASH" and ref $args ne "ARRAY"
100
ABdec
0X0
100
111
exists $params->{'args'} and not defined $args
105533
ABdec
000
011
1X1
$error_msg || "${schema_description}: args must be a hash or array reference"
1138100
ABdec
0X0
100
111
defined $value && defined $rules->{'type'} && !ref($rules->{'type'}) && lc $rules->{'type'} eq 'stringref'
114267
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string reference, not $got"
1146100
ABdec
0X0
100
111
$rules->{'transform'} and defined $value
1169100
ABdec
0X0
100
111
ref $args eq "HASH" and not exists $args->{$key}
100
ABdec
0X0
100
111
ref $rules eq "HASH" and $is_optional
1214100
ABdec
0X0
100
111
ref $rules eq "HASH" and ref $rules->{'type'} eq "ARRAY"
1226100
ABdec
0X0
100
111
defined(my $min = $rules->{'min'} // $rules->{'minimum'}) and defined(my $max = $rules->{'max'})
100
ABdec
000
011
1X1
$rules->{'min'} // $rules->{'minimum'}
1233100
ABCdec
0000
0011
01X1
1XX1
$rules->{'memberof'} or $rules->{'enum'} or $rules->{'values'}
123467
ABdec
000
011
1X1
$rules->{'min'} // $rules->{'minimum'}
1245100
ABCDEFdec
0XXXXX0
10XXXX0
110XXX0
1110XX0
11110X0
1111100
1111111
ref $rule_value eq "CODE" and $rule_name ne "validate" and $rule_name ne "callback" and $rule_name ne "validator" and $rule_name ne "transform" and $rule_name ne "optional"
125567
ABdec
0X0
100
111
&Scalar::Util::blessed($rule_value) and $rule_value->can("as_string")
1259100
ABdec
000
011
1X1
$rule_name eq "matches" or $rule_name eq "regex"
100
ABCdec
0000
0011
01X1
1XX1
$rule_name eq "memberof" or $rule_name eq "enum" or $rule_name eq "values"
100
ABdec
000
011
1X1
$rule_name eq "validate" or $rule_name eq "validator"
100
ABdec
000
011
1X1
$rule_name eq "min" or $rule_name eq "minimum"
1262100
ABdec
000
011
1X1
$type eq "number" or $type eq "float"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "number" or $type eq "float" or $type eq "num" or $type eq "double"
100
ABdec
000
011
1X1
$type eq "boolean" or $type eq "bool"
100
ABdec
000
011
1X1
$type eq "string" or $type eq "str"
100
ABdec
000
011
1X1
$type eq "integer" or $type eq "int"
126433
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string"
126625
ABCdec
00X0
0100
0111
1XX1
ref $value eq "" or defined $value and length $value
12670
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string"
1273100
ABCdec
0000
0011
01X1
1XX1
not &Scalar::Util::looks_like_number($value) or $value - $value != 0 or $value != int $value
132167
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a scalar, not a " . ref($value) . ' reference'
132967
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a scalar reference, not $got"
133833
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: Parameter '${key}' stringref transform must return a plain string, not a " . ref($value) . ' reference'
139467
ABdec
000
011
1X1
exists $custom_types->{$type}{'min'} or exists $custom_types->{$type}{'minimum'}
139533
ABdec
000
011
1X1
$custom_types->{$type}{'min'} // $custom_types->{$type}{'minumum'}
1398100
ABCdec
0000
0011
01X1
1XX1
$type eq "string" or $type eq "str" or $type eq "stringref"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "integer" or $type eq "number" or $type eq "float"
141167
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too short, ($len characters), must be at least $rule_value characters"
14150
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded"
145567
ABdec
0X0
100
111
$type eq "integer" and $value == 1
100
ABdec
0X0
100
111
$type eq "integer" and $value == 0
148775
ABCdec
0000
0011
01X1
1XX1
$type eq "string" or $type eq "str" or $type eq "stringref"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "integer" or $type eq "number" or $type eq "float"
149367
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too long, ($len characters), must be no longer than $rule_value"
14970
ABdec
000
011
1X1
$rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded"
153767
ABdec
0X0
100
111
$type eq "integer" and $value == -1
67
ABdec
0X0
100
111
$type eq "integer" and $value == 0
156667
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
159667
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1619100
ABCdec
0000
0011
01X1
1XX1
$rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float"
1625100
ABdec
000
011
1X1
!defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1
165175
ABCdec
0000
0011
01X1
1XX1
$rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float"
1657100
ABdec
000
011
1X1
!defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1
171467
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1717100
ABdec
0X0
100
111
$custom_type and $custom_type->{'type'}
1721100
ABdec
0X0
100
111
$custom_type and $custom_type->{'transform'}
173067
ABdec
000
011
1X1
$type eq "number" or $rule_value eq "float"
67
ABdec
000
011
1X1
$type eq "string" or $type eq "Str"
174067
ABdec
000
011
1X1
ref $member or $member =~ /\D/
174967
ABdec
000
011
1X1
ref $member or not $member =~ /^[-+]?(\d*\.\d+|\d+\.?\d*)$/
178233
ABdec
000
011
1X1
$value < 0 or $value > 2147483647
179067
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
179967
ABdec
0X0
100
111
ref $rule_value eq 'HASH' && !exists $rule_value->{'type'}
18400
ABdec
000
011
1X1
"${rule_description}: Parameter '${key}': 'validate' only supports coderef, not " . ref($rule_value) // $rule_value
191867
ABdec
000
011
1X1
not ref $validator or ref $validator ne "CODE"
201175
ABCdec
0XX0
10X0
1100
1111
ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key}
201675
ABCdec
0XX0
10X0
1100
1111
ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH"
205967
ABdec
000
011
1X1
$rel->{'description'} || 'Cannot specify both ' . join(' and ', @present)
207467
ABdec
000
011
1X1
$rel->{'description'} || 'Must specify at least one of: ' . join(', ', @params)
208667
ABdec
0X0
100
111
exists $args->{$if_param} and defined $args->{$if_param}
209067
ABdec
0X0
100
111
exists $args->{$then_param} and defined $args->{$then_param}
209133
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param is specified, $then_param is required"
210567
ABdec
0X0
100
111
exists $args->{$param} and defined $args->{$param}
210667
ABdec
0X0
100
111
exists $args->{$requires} and defined $args->{$requires}
210767
ABdec
000
011
1X1
$rel->{'description'} || "$param requires $requires to be specified"
212375
ABCdec
0XX0
10X0
1100
1111
exists $args->{$if_param} and defined $args->{$if_param} and $args->{$if_param}
212533
ABdec
0X0
100
111
exists $args->{$then_param} and defined $args->{$then_param}
214467
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param is specified, $then_param must be $operator $value (got $actual)"
216067
ABdec
0X0
100
111
exists $args->{$if_param} and defined $args->{$if_param}
216367
ABdec
0X0
100
111
exists $args->{$then_param} and defined $args->{$then_param}
216567
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param equals '${equals}', $then_param is required"