Branch Coverage

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

line%coveragebranch
938100TFif (ref $schema ne "HASH")
94650TFif ($schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'})
952100TFif (exists $params->{'args'} and not defined $args) { }
100TFelsif (ref $args ne 'HASH' and ref $args ne 'ARRAY') { }
958100TFif (ref $args eq "HASH")
961100TFunless (exists $schema->{$key})
962100TFif ($unknown_parameter_handler eq 'die') { }
100TFelsif ($unknown_parameter_handler eq 'warn') { }
100TFelsif ($unknown_parameter_handler eq 'ignore') { }
968100TFif ($logger)
982100TFif (defined(my $rules = $schema->{$key})) { }
983100TFif (ref $rules eq 'HASH') { }
984100TFunless (defined $rules->{'position'})
98550TFif ($are_positional_args == 1)
1006100TF$are_positional_args == 1 ? :
1008100TFunless (defined $rules)
1014100TFif (ref $rules eq "")
1022100TFif (ref $rules eq "HASH")
102350TFif (exists $rules->{'description'})
1026100TFif ($rules->{'transform'} and defined $value)
1027100TFif (ref $rules->{'transform'} eq 'CODE') { }
1033100TFif (exists $rules->{'optional'}) { }
50TFelsif ($rules->{'nullable'}) { }
1034100TFif (ref $rules->{'optional'} eq 'CODE') { }
1045100TFif (ref $rules eq 'HASH' and $is_optional) { }
100TFelsif (ref $args eq 'HASH' and not exists $args->{$key}) { }
1047100TFif ($are_positional_args == 1) { }
1049100TFunless (defined $$args[$rules->{'position'}])
1053100TFunless (exists $args->{$key})
1057100TFif ($look_for_default)
1058100TFif ($are_positional_args == 1)
105950TFif (scalar @{$args;} < $rules->{'position'})
1065100TFif (exists $rules->{'default'})
1070100TFif ($rules->{'schema'}) { }
1072100TFunless scalar %{$value;}
1084100TFif (ref $rules eq 'HASH') { }
100TFelsif (ref $rules eq 'ARRAY') { }
50TFelsif (ref $rules) { }
1085100TFif (defined(my $min = $rules->{'min'}) and defined(my $max = $rules->{'max'}))
1086100TFif ($min > $max)
1091100TFif ($rules->{'memberof'})
1092100TFif (defined(my $min = $rules->{'min'}))
1095100TFif (defined(my $max = $rules->{'max'}))
1103100TFif (ref $rule_value eq "CODE" and $rule_name ne "validate" and $rule_name ne "callback" and $rule_name ne "validator")
1107100TFif ($rule_name eq 'type') { }
100TFelsif ($rule_name eq 'min') { }
100TFelsif ($rule_name eq 'max') { }
100TFelsif ($rule_name eq 'matches') { }
100TFelsif ($rule_name eq 'nomatch') { }
100TFelsif ($rule_name eq 'memberof' or $rule_name eq 'enum') { }
100TFelsif ($rule_name eq 'notmemberof') { }
100TFelsif ($rule_name eq 'isa') { }
100TFelsif ($rule_name eq 'can') { }
100TFelsif ($rule_name eq 'element_type') { }
100TFelsif ($rule_name eq 'optional') { }
100TFelsif ($rule_name eq 'default') { }
100TFelsif ($rule_name eq 'error_msg') { }
100TFelsif ($rule_name eq 'transform') { }
100TFelsif ($rule_name eq 'case_sensitive') { }
50TFelsif ($rule_name eq 'description') { }
50TFelsif ($rule_name =~ /^_/) { }
100TFelsif ($rule_name eq 'semantic') { }
100TFelsif ($rule_name eq 'schema') { }
100TFelsif ($rule_name eq 'validate' or $rule_name eq 'validator') { }
100TFelsif ($rule_name eq 'callback') { }
50TFelsif ($rule_name eq 'position') { }
1110100TFif ($type eq 'string' or $type eq 'str') { }
100TFelsif ($type eq 'integer') { }
100TFelsif ($type eq 'number' or $type eq 'float') { }
100TFelsif ($type eq 'arrayref') { }
100TFelsif ($type eq 'hashref') { }
100TFelsif ($type eq 'boolean' or $type eq 'bool') { }
100TFelsif ($type eq 'coderef') { }
100TFelsif ($type eq 'object') { }
100TFelsif (my $custom_type = $custom_types->{$type}) { }
1111100TFif (ref $value)
11140TFunless (ref $value eq "" or defined $value and length $value)
1118100TFunless (defined $value)
1121100TFunless ($value =~ /^\s*[+\-]?\d+\s*$/)
1122100TFif ($rules->{'error_msg'}) { }
1130100TFunless (defined $value)
1133100TFunless (&Scalar::Util::looks_like_number($value))
113450TFif ($rules->{'error_msg'}) { }
1143100TFunless (defined $value)
114650TFif (ref $value ne "ARRAY")
11470TFif ($rules->{'error_msg'}) { }
1154100TFunless (defined $value)
115750TFif (ref $value ne "HASH")
11580TFif ($rules->{'error_msg'}) { }
1165100TFunless (defined $value)
1168100TFif ($value eq 'true' or $value eq 'on' or $value eq 'yes') { }
100TFelsif ($value eq 'false' or $value eq 'off' or $value eq 'no') { }
1173100TFif ($value ne 1 and $value ne 0)
117450TFif ($rules->{'error_msg'}) { }
1182100TFunless (defined $value)
118550TFif (ref $value ne "CODE")
11860TFif ($rules->{'error_msg'}) { }
1193100TFunless (defined $value)
1196100TFunless (&Scalar::Util::blessed($value))
119750TFif ($rules->{'error_msg'}) { }
1204100TFif ($custom_type->{'transform'})
120650TFif (ref $custom_type->{'transform'} eq 'CODE') { }
121850TFunless (defined $rules->{'type'})
1222100TFif (exists $custom_types->{$type}{'min'})
1226100TFif ($type eq 'string' or $type eq 'str') { }
100TFelsif ($type eq 'arrayref') { }
100TFelsif ($type eq 'hashref') { }
100TFelsif ($type eq 'integer' or $type eq 'number' or $type eq 'float') { }
1227100TFif ($rule_value < 0)
122850TFif ($rules->{'error_msg'}) { }
123450TFunless (defined $value)
123750TFif (defined(my $len = _number_of_characters($value))) { }
1238100TFif ($len < $rule_value)
124750TFunless (defined $value)
1250100TFif (ref $value ne "ARRAY")
125150TFif ($rules->{'error_msg'}) { }
1257100TFif (scalar @{$value;} < $rule_value)
125850TFif ($rules->{'error_msg'}) { }
126650TFunless (defined $value)
1269100TFif (scalar keys %{$value;} < $rule_value)
127050TFif ($rules->{'error_msg'}) { }
127850TFunless (defined $value)
1281100TFif (&Scalar::Util::looks_like_number($value)) { }
1282100TFif ($value < $rule_value)
1283100TFif ($rules->{'error_msg'}) { }
129250TFif ($rules->{'error_msg'}) { }
130350TFunless (defined $rules->{'type'})
1307100TFif (exists $custom_types->{$type}{'max'})
1311100TFif ($type eq 'string' or $type eq 'str') { }
100TFelsif ($type eq 'arrayref') { }
100TFelsif ($type eq 'hashref') { }
100TFelsif ($type eq 'integer' or $type eq 'number' or $type eq 'float') { }
131250TFunless (defined $value)
131550TFif (defined(my $len = _number_of_characters($value))) { }
1316100TFif ($len > $rule_value)
132550TFunless (defined $value)
132850TFif (ref $value ne "ARRAY")
13290TFif ($rules->{'error_msg'}) { }
1335100TFif (scalar @{$value;} > $rule_value)
133650TFif ($rules->{'error_msg'}) { }
134450TFunless (defined $value)
1347100TFif (scalar keys %{$value;} > $rule_value)
134850TFif ($rules->{'error_msg'}) { }
135650TFunless (defined $value)
135950TFif (&Scalar::Util::looks_like_number($value)) { }
1360100TFif ($value > $rule_value)
136150TFif ($rules->{'error_msg'}) { }
13700TFif ($rules->{'error_msg'}) { }
1381100TFunless (defined $value)
1385100TFref $rule_value eq 'Regexp' ? :
1386100TFif ($rules->{'type'} eq 'arrayref' or $rules->{'type'} eq 'ArrayRef') { }
100TFelsif (not $value =~ /$re/) { }
138850TFif (scalar @matches != scalar @{$value;})
13890TFif ($rules->{'error_msg'}) { }
1396100TFif ($rules->{'error_msg'}) { }
1404100TFif ($@)
1405100TFif ($rules->{'error_msg'}) { }
141350TFunless (defined $value)
1416100TFif ($rules->{'type'} eq 'arrayref' or $rules->{'type'} eq 'ArrayRef') { }
100TFelsif ($value =~ /$rule_value/) { }
1418100TFif (scalar @matches)
141950TFif ($rules->{'error_msg'}) { }
142650TFif ($rules->{'error_msg'}) { }
143450TFunless (defined $value)
1437100TFif (ref $rule_value eq 'ARRAY') { }
1439100TFif ($rules->{'type'} eq 'integer' or $rules->{'type'} eq 'number' or $rules->{'type'} eq 'float') { }
1440100TFunless (&List::Util::any(sub {         $_ == $value; } , @{$rule_value;}))
1445100TF!defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 ? :
100TFunless (&List::Util::any(sub {         !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 ? $_ eq $value : lc $_ eq $l; } , @{$rule_value;}))
1450100TFunless ($ok)
1451100TFif ($rules->{'error_msg'}) { }
145950TFif ($rules->{'error_msg'}) { }
146650TFunless (defined $value)
1469100TFif (ref $rule_value eq 'ARRAY') { }
1471100TFif ($rules->{'type'} eq 'integer' or $rules->{'type'} eq 'number' or $rules->{'type'} eq 'float') { }
1472100TFif (&List::Util::any(sub {         $_ == $value; } , @{$rule_value;}))
147750TF!defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 ? :
100TFif (&List::Util::any(sub {         !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 ? $_ eq $value : lc $_ eq $l; } , @{$rule_value;}))
1482100TFunless ($ok)
1483100TFif ($rules->{'error_msg'}) { }
149150TFif ($rules->{'error_msg'}) { }
149850TFunless (defined $value)
1501100TFif ($rules->{'type'} eq 'object') { }
1502100TFunless ($value->isa($rule_value))
151050TFunless (defined $value)
1513100TFif ($rules->{'type'} eq 'object') { }
1514100TFif (ref $rule_value eq 'ARRAY') { }
100TFelsif (not ref $rule_value) { }
1517100TFunless ($value->can($method))
1523100TFunless ($value->can($rule_value))
153450TFif ($rules->{'type'} eq 'arrayref' or $rules->{'type'} eq 'ArrayRef') { }
153750TFif ($custom_type and $custom_type->{'type'})
154150TFif ($custom_type and $custom_type->{'transform'})
154350TFif (ref $custom_type->{'transform'} eq 'CODE') { }
1550100TFif ($type eq 'string' or $type eq 'Str') { }
100TFelsif ($type eq 'integer') { }
50TFelsif ($type eq 'number' or $rule_value eq 'float') { }
155150TFif (ref $member)
15520TFif ($rules->{'error_msg'}) { }
1560100TFif (ref $member or $member =~ /\D/)
1561100TFif ($rules->{'error_msg'}) { }
1569100TFif (ref $member or not $member =~ /^[-+]?(\d*\.\d+|\d+\.?\d*)$/)
157050TFif ($rules->{'error_msg'}) { }
159950TFif ($rule_value eq 'unix_timestamp') { }
160050TFif ($value < 0 or $value > 2147483647)
1608100TFif ($rules->{'type'} eq 'arrayref' or $rules->{'type'} eq 'ArrayRef') { }
50TFelsif ($rules->{'type'} eq 'hashref') { }
160950TFif (ref $value eq 'ARRAY') { }
0TFelsif (defined $value) { }
161150TFunless (validate_strict({"input", {$key, $member}, "schema", {$key, $rule_value}, "custom_types", $custom_types}))
161950TFif (ref $value eq 'HASH') { }
1622100TFif (scalar keys %{$value;})
162350TFif (my $new_args = validate_strict({'input', $nested_with_defaults, 'schema', $rule_value, 'custom_types', $custom_types})) { }
163650TFif (ref $rule_value eq 'CODE') { }
1637100TFif (my $error = &{$rule_value;}($args))
1646100TFunless (defined &$rule_value)
1650100TFunless ($res)
165150TFif ($rules->{'error_msg'}) { }
165950TFif ($rule_value =~ /\D/)
166250TFif ($rule_value < 0)
1670100TFif (scalar @{$rules;}) { }
1675100TFif (ref $rule ne "HASH")
167950TFunless (defined $rule->{'type'})
1687100TFunless ($@)
1692100TFunless ($rc)
1707100TFif (my $relationships = $params->{'relationships'})
1711100TFif (my $cross_validation = $params->{'cross_validation'})
1714100TFif (not ref $validator or ref $validator ne "CODE")
1718100TFif (my $error = &{$validator;}(\%validated_args, $validator))
1730100TFif ($are_positional_args == 1)
173350TFif (my $value = delete $validated_args{$key})
1735100TFif (defined $rc[$position])
175250TFunless defined $value
1754100TFunless ($value =~ /[^[:ascii:]]/)
175850TFunless utf8::is_utf8($value)
1774100TFif (ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key})
1779100TFif (ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH")
179050TFunless ref $relationships eq "ARRAY"
179350TFunless my $type = $rel->{'type'}
1795100TFif ($type eq 'mutually_exclusive') { }
100TFelsif ($type eq 'required_group') { }
100TFelsif ($type eq 'conditional_requirement') { }
100TFelsif ($type eq 'dependency') { }
100TFelsif ($type eq 'value_constraint') { }
50TFelsif ($type eq 'value_conditional') { }
181650TFunless $rel->{'params'}
181750TFunless @params >= 2
181950TFif exists $args->{$_}
182150TFif (@present > 1)
183050TFunless $rel->{'params'}
183150TFunless @params >= 2
183350TFif exists $args->{$_}
183550TFif (@present == 0)
184550TFunless my $if_param = $rel->{'if'}
184650TFunless my $then_param = $rel->{'then_required'}
184950TFif (exists $args->{$if_param} and defined $args->{$if_param})
185150TFif ($args->{$if_param})
185350TFunless (exists $args->{$then_param} and defined $args->{$then_param})
186450TFunless my $param = $rel->{'param'}
186550TFunless my $requires = $rel->{'requires'}
186850TFif (exists $args->{$param} and defined $args->{$param})
186950TFunless (exists $args->{$requires} and defined $args->{$requires})
187950TFunless my $if_param = $rel->{'if'}
188050TFunless my $then_param = $rel->{'then'}
188150TFunless my $operator = $rel->{'operator'}
188350TFunless defined $value
188650TFif (exists $args->{$if_param} and defined $args->{$if_param} and $args->{$if_param})
188850TFif (exists $args->{$then_param} and defined $args->{$then_param})
189250TFif ($operator eq '==') { }
0TFelsif ($operator eq '!=') { }
0TFelsif ($operator eq '<') { }
0TFelsif ($operator eq '<=') { }
0TFelsif ($operator eq '>') { }
0TFelsif ($operator eq '>=') { }
190650TFunless ($valid)
191750TFunless my $if_param = $rel->{'if'}
191950TFunless my $then_param = $rel->{'then_required'}
192050TFunless defined $equals
192350TFif (exists $args->{$if_param} and defined $args->{$if_param})
192450TFif ($args->{$if_param} eq $equals)
192650TFunless (exists $args->{$then_param} and defined $args->{$then_param})
1942100TFif ($logger)
1956100TFif ($logger) { }