Condition Coverage

lib/Net/Amazon/DynamoDB.pm
Criterion Covered Total %
condition 0 199 0.0


and 2 conditions

line l !l condition
521 0 0 $args_ref->{'process_all'} and $res_ok and defined $json_ref->{'UnprocessedItems'} and scalar keys %{$$json_ref{'UnprocessedItems'};}

and 3 conditions

line !l l&&!r l&&r condition
213 0 0 0 $res_ok and defined $json_ref->{'TableDescription'}
250 0 0 0 $res_ok and defined $json_ref->{'TableDescription'}
343 0 0 0 defined $json_ref->{'Table'} && defined $json_ref->{'Table'}{'ItemCount'}
391 0 0 0 defined $$item_ref{$table_ref->{'hash_key'}} and length $$item_ref{$table_ref->{'hash_key'}}
521 0 0 0 $args_ref->{'process_all'} and $res_ok
0 0 0 $args_ref->{'process_all'} and $res_ok and defined $json_ref->{'UnprocessedItems'}
536 0 0 0 $res_ok and defined $json_ref->{'UnprocessedItems'}
577 0 0 0 defined $table_ref->{'range_key'} and defined $$update_ref{$table_ref->{'range_key'}}
582 0 0 0 defined $$where_ref{$table_ref->{'hash_key'}} and length $$where_ref{$table_ref->{'hash_key'}}
587 0 0 0 defined $$where_ref{$table_ref->{'range_key'}} && length $$where_ref{$table_ref->{'range_key'}}
0 0 0 defined $table_ref->{'range_key'} and not defined $$where_ref{$table_ref->{'range_key'}} && length $$where_ref{$table_ref->{'range_key'}}
594 0 0 0 defined $table_ref->{'range_key'} and defined $$update_ref{$table_ref->{'range_key'}}
612 0 0 0 $type eq 'N' and $value =~ /^(--|\+\+)(\d+)$/
724 0 0 0 defined $$pk_ref{$table_ref->{'hash_key'}} and length $$pk_ref{$table_ref->{'hash_key'}}
729 0 0 0 defined $$pk_ref{$table_ref->{'range_key'}} && length $$pk_ref{$table_ref->{'hash_key'}}
0 0 0 defined $table_ref->{'range_key'} and not defined $$pk_ref{$table_ref->{'range_key'}} && length $$pk_ref{$table_ref->{'hash_key'}}
842 0 0 0 ref $t_ref eq 'HASH' and defined $t_ref->{'attributes'}
858 0 0 0 $res_ok and defined $json_ref->{'Responses'}
860 0 0 0 $args_ref->{'process_all'} and defined(my $ukeys_ref = $json_ref->{'UnprocessedKeys'})
868 0 0 0 $res_ok and defined $ujson_ref->{'Responses'}
871 0 0 0 defined $ujson_ref->{'Responses'}{$table} and defined $ujson_ref->{'Responses'}{$table}{'Items'}
880 0 0 0 $res_ok && defined $ujson_ref->{'UnprocessedKeys'}
887 0 0 0 defined $json_ref->{'Responses'}{$table} and defined $json_ref->{'Responses'}{$table}{'Items'}
921 0 0 0 defined $$where_ref{$table_ref->{'hash_key'}} and length $$where_ref{$table_ref->{'hash_key'}}
926 0 0 0 defined $$where_ref{$table_ref->{'range_key'}} && length $$where_ref{$table_ref->{'range_key'}}
0 0 0 defined $table_ref->{'range_key'} and not defined $$where_ref{$table_ref->{'range_key'}} && length $$where_ref{$table_ref->{'range_key'}}
1069 0 0 0 defined $table_ref->{'range_key'} and defined $$start_key_ref{$table_ref->{'range_key'}}
1093 0 0 0 $res_ok and defined $json_ref->{'Items'}
1110 0 0 0 defined $table_ref->{'range_key'} and defined $json_ref->{'LastEvaluatedKey'}{'RangeKeyElement'}
1117 0 0 0 $args_ref->{'all'} and $next_start_key_ref
1180 0 0 0 $filter_ref and keys %$filter_ref
1221 0 0 0 defined $table_ref->{'range_key'} and defined $$start_key_ref{$table_ref->{'range_key'}}
1244 0 0 0 $res_ok and defined $json_ref->{'Items'}
1262 0 0 0 defined $table_ref->{'range_key'} and defined $json_ref->{'LastEvaluatedKey'}{'RangeKeyElement'}
1269 0 0 0 $args_ref->{'all'} and $next_start_key_ref
1379 0 0 0 defined $json_ref->{'__type'} and $json_ref->{'__type'} =~ /ProvisionedThroughputExceededException/
0 0 0 defined $json_ref->{'__type'} and $json_ref->{'__type'} =~ /ProvisionedThroughputExceededException/ and $tries-- > 0
1389 0 0 0 defined $json_ref->{'error'} and $json_ref->{'error'}
0 0 0 defined $json_ref->{'__type'} and $json_ref->{'__type'} =~ /Exception/
0 0 0 defined $json_ref->{'__type'} and $json_ref->{'__type'} =~ /Exception/ and $json_ref->{'Message'}
1465 0 0 0 ref $result_ref and defined $result_ref->{'GetSessionTokenResult'}
0 0 0 ref $result_ref and defined $result_ref->{'GetSessionTokenResult'} and defined $result_ref->{'GetSessionTokenResult'}
0 0 0 ref $result_ref and defined $result_ref->{'GetSessionTokenResult'} and defined $result_ref->{'GetSessionTokenResult'} and defined $result_ref->{'GetSessionTokenResult'}{'Credentials'}
1471 0 0 0 ref $cred_ref and defined $cred_ref->{'SessionToken'}
0 0 0 ref $cred_ref and defined $cred_ref->{'SessionToken'} and defined $cred_ref->{'AccessKeyId'}
0 0 0 ref $cred_ref and defined $cred_ref->{'SessionToken'} and defined $cred_ref->{'AccessKeyId'} and defined $cred_ref->{'SecretAccessKey'}
0 0 0 ref $cred_ref and defined $cred_ref->{'SessionToken'} and defined $cred_ref->{'AccessKeyId'} and defined $cred_ref->{'SecretAccessKey'} and defined $cred_ref->{'Expiration'}
1744 0 0 0 $self->has_cache && !$args_ref->{'no_cache'} && ($args_ref->{'use_cache'} || !$self->cache_disabled)

or 2 conditions

line l !l condition
180 0 0 $read_amount ||= 10
181 0 0 $write_amount ||= 5
377 0 0 $args_ref ||= {'return_old', 0, 'no_cache', 0, 'use_cache', 0, 'max_retries', undef}
453 0 0 $args_ref ||= {'process_all', 0, 'max_retries', undef}
547 0 0 $next_query{$table}{$operation_name} ||= []
561 0 0 $args_ref ||= {'return_mode', '', 'no_cache', 0, 'use_cache', 0, 'max_retries', undef}
709 0 0 $args_ref ||= {'consistent', undef, 'attributes', undef, 'no_cache', 0, 'use_cache', 0, 'max_retries', undef}
790 0 0 $args_ref ||= {'max_retries', undef, 'process_all', undef, 'consistent', undef}
872 0 0 $json_ref->{'Responses'}{$table} ||= {}
873 0 0 $json_ref->{'Responses'}{$table}{'Items'} ||= []
907 0 0 $args_ref ||= {'return_old', 0, 'no_cache', 0, 'use_cache', 0, 'max_retries', undef}
995 0 0 $args_ref ||= {'limit', undef, 'consistent', 0, 'backward', 0, 'start_key', undef, 'attributes', undef, 'count', 0, 'all', 0, 'max_retries', undef}
1158 0 0 $args_ref ||= {'limit', undef, 'start_key', undef, 'attributes', undef, 'count', 0, 'all', 0, 'max_retries', undef}
1186 0 0 ref $val_ref || ''
1312 0 0 $args_ref ||= {'max_retries', undef}
1377 0 0 eval { do { $self->json->decode($response->decoded_content) } } || {'error', 'Failed to parse JSON result'}
1496 0 0 eval { do { $res->decoded_content } } || 'No Content'
1721 0 0 eval { do { $self->json->decode($response->decoded_content) } } || {'error', 'Failed to parse JSON result'}
1756 0 0 $hash_ref->{$_} || ''

or 3 conditions

line l !l&&r !l&&!r condition
612 0 0 0 $type eq 'N' or $type eq 'S'
0 0 0 $type eq 'N' or $type eq 'S' or $type eq 'B'
716 0 0 0 $args_ref->{'consistent'} //= $self->read_consistent
795 0 0 0 $args_ref->{'consistent'} //= $self->read_consistent
1673 0 0 0 $value->{'S'} || $value->{'N'} || $value->{'NS'} || $value->{'SS'}