Condition Coverage

blib/lib/Params/Validate/Strict.pm
Criterion Covered Total %
condition 149 233 63.9


and 3 conditions

line !l l&&!r l&&r condition
980 521 1 0 $schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'}
986 402 119 1 exists $params->{'args'} and not defined $args
514 5 2 ref $args ne "HASH" and ref $args ne "ARRAY"
1068 684 1 40 $rules->{'transform'} and defined $value
1087 13 570 153 ref $rules eq "HASH" and $is_optional
4 572 7 ref $args eq "HASH" and not exists $args->{$key}
1127 457 100 80 defined(my $min = $rules->{'min'}) and defined(my $max = $rules->{'max'})
1145 1121 2 69 ref $rule_value eq "CODE" and $rule_name ne "validate"
1123 16 53 ref $rule_value eq "CODE" and $rule_name ne "validate" and $rule_name ne "callback"
18 0 53 ref $rule_value eq "CODE" and $rule_name ne "validate" and $rule_name ne "callback" and $rule_name ne "validator"
1150 1129 63 0 builtin::blessed($rule_value) and $rule_value->can("as_string")
1161 0 0 0 defined $value and length $value
1220 13 7 2 $value ne 1 and $value ne 0
1584 17 0 1 $custom_type and $custom_type->{'type'}
1588 40 0 2 $custom_type and $custom_type->{'transform'}
1821 0 101 4 ref $rules eq "HASH" and exists $rules->{'default'}
101 2 2 ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key}
1826 0 90 15 ref $rules eq "HASH" and $rules->{'schema'}
90 7 8 ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH"
1896 0 0 1 exists $args->{$if_param} and defined $args->{$if_param}
1900 0 0 1 exists $args->{$then_param} and defined $args->{$then_param}
1915 0 0 1 exists $args->{$param} and defined $args->{$param}
1916 1 0 0 exists $args->{$requires} and defined $args->{$requires}
1933 0 0 1 exists $args->{$if_param} and defined $args->{$if_param}
0 0 1 exists $args->{$if_param} and defined $args->{$if_param} and $args->{$if_param}
1935 0 0 1 exists $args->{$then_param} and defined $args->{$then_param}
1970 0 0 1 exists $args->{$if_param} and defined $args->{$if_param}
1973 1 0 0 exists $args->{$then_param} and defined $args->{$then_param}

or 2 conditions

line l !l condition
977 1 521 $params->{'description'} || 'validate_strict'

or 3 conditions

line l !l&&r !l&&!r condition
956 523 1 1 $params->{'schema'} || $params->{'members'}
957 120 403 2 $params->{'args'} || $params->{'input'}
980 1 0 0 $schema->{'description'} || $schema->{'error_msg'}
989 0 2 0 $error_msg || "${schema_description}: args must be a hash or array reference"
1154 64 1 268 $rule_name eq "memberof" or $rule_name eq "enum"
2 0 22 $rule_name eq "validate" or $rule_name eq "validator"
1157 253 3 309 $type eq "string" or $type eq "str"
46 3 166 $type eq "number" or $type eq "float"
22 1 67 $type eq "boolean" or $type eq "bool"
1159 0 6 0 $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string"
1161 250 0 0 ref $value eq "" or defined $value and length $value
1162 0 0 0 $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string"
1215 1 1 20 $value eq "true" or $value eq "on"
2 1 19 $value eq "true" or $value eq "on" or $value eq "yes"
1 1 17 $value eq "false" or $value eq "off"
2 1 16 $value eq "false" or $value eq "off" or $value eq "no"
1273 53 3 106 $type eq "string" or $type eq "str"
60 22 3 $type eq "integer" or $type eq "number"
82 2 1 $type eq "integer" or $type eq "number" or $type eq "float"
1286 0 7 0 $rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too short, ($len characters), must be at least $rule_value characters"
1290 0 0 0 $rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded"
1358 24 0 42 $type eq "string" or $type eq "str"
26 3 3 $type eq "integer" or $type eq "number"
29 2 1 $type eq "integer" or $type eq "number" or $type eq "float"
1364 0 5 0 $rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too long, ($len characters), must be no longer than $rule_value"
1368 0 0 0 $rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded"
1433 2 0 56 $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1463 3 0 4 $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1486 10 2 51 $rules->{'type'} eq "integer" or $rules->{'type'} eq "number"
12 0 51 $rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float"
1492 210 6 30 !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1
1518 3 3 17 $rules->{'type'} eq "integer" or $rules->{'type'} eq "number"
6 0 17 $rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float"
1524 33 0 0 !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1
1581 18 0 0 $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1597 15 0 27 $type eq "string" or $type eq "Str"
4 0 0 $type eq "number" or $rule_value eq "float"
1607 0 2 21 ref $member or $member =~ /\D/
1616 0 1 3 ref $member or not $member =~ /^[-+]?(\d*\.\d+|\d+\.?\d*)$/
1647 0 0 1 $value < 0 or $value > 2147483647
1655 11 0 33 $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
1690 0 0 0 "${rule_description}: Parameter '${key}': 'validate' only supports coderef, not " . ref($rule_value) // $rule_value
1761 1 0 41 not ref $validator or ref $validator ne "CODE"
1869 1 0 0 $rel->{'description'} || 'Cannot specify both ' . join(' and ', @present)
1884 1 0 0 $rel->{'description'} || 'Must specify at least one of: ' . join(', ', @params)
1901 0 0 0 $rel->{'description'} || "When $if_param is specified, $then_param is required"
1917 1 0 0 $rel->{'description'} || "$param requires $requires to be specified"
1954 1 0 0 $rel->{'description'} || "When $if_param is specified, $then_param must be $operator $value (got $actual)"
1975 1 0 0 $rel->{'description'} || "When $if_param equals '${equals}', $then_param is required"