Branch Coverage

blib/lib/Anansi/DatabaseComponent.pm
Criterion Covered Total %
branch 0 426 0.0


line true false branch
270 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
275 0 0 unless (eval { do { $autocommit = $$self{'HANDLE'}->autocommit; 1 } })
278 0 0 unless defined $autocommit
279 0 0 unless ref($autocommit) =~ /^$/
280 0 0 unless $autocommit =~ /^[\+\-]?\d+$/
281 0 0 if $autocommit
362 0 0 unless defined $parameters{'HANDLE'}
363 0 0 unless defined $parameters{'INPUT'}
364 0 0 unless ref($parameters{'INPUT'}) =~ /^ARRAY$/i
365 0 0 unless defined $parameters{'VALUE'}
366 0 0 unless ref($parameters{'VALUE'}) =~ /^HASH$/i
369 0 0 if (defined ${$parameters{'VALUE'};}{${$input;}{'NAME'}}) { }
0 0 elsif (defined ${$input;}{'DEFAULT'}) { }
0 0 elsif (defined ${$input;}{'TYPE'}) { }
370 0 0 if (defined ${$input;}{'TYPE'}) { }
376 0 0 if (defined ${$input;}{'TYPE'}) { }
421 0 0 unless ref($parameter) =~ /^HASH$/i
422 0 0 unless defined ${$parameter;}{'NAME'}
423 0 0 unless ref(${$parameter;}{'NAME'}) =~ /^$/
424 0 0 unless ${$parameter;}{'NAME'} =~ /^[a-zA-Z_]+(\s*[a-zA-Z0-9_]+)*$/
464 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
465 0 0 unless defined $$self{'HANDLE'}
466 0 0 if $self->autocommit
471 0 0 unless (eval { do { $commit = $$self{'HANDLE'}->commit; 1 } })
475 0 0 unless defined $commit
476 0 0 unless ref($commit) =~ /^$/
477 0 0 unless $commit =~ /^[\+\-]?\d+$/
478 0 0 if $commit
629 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
631 0 0 if (defined $parameters{'HANDLE'}) { }
0 0 elsif (not defined $parameters{'INPUT'}) { }
0 0 elsif (not ref($parameters{'INPUT'}) =~ /^ARRAY$/i) { }
632 0 0 unless ref($parameters{'HANDLE'}) =~ /^DBI::db$/
642 0 0 unless (ref($input) =~ /^HASH$/i)
647 0 0 if defined ${$input;}{'DEFAULT'}
648 0 0 if (not defined ${$input;}{'NAME'}) { }
0 0 elsif (not ref(${$input;}{'NAME'}) =~ /^$/) { }
0 0 elsif (defined $parameters{${$input;}{'NAME'}}) { }
649 0 0 if (not defined ${$input;}{'INPUT'}) { }
0 0 elsif (not ref(${$input;}{'INPUT'}) =~ /^ARRAY$/i) { }
0 0 elsif (not defined ${$input;}{'REF'}) { }
0 0 elsif (not ref(${$input;}{'REF'}) =~ /^$/i) { }
0 0 elsif ('' eq ${$input;}{'REF'}) { }
0 0 elsif (${$input;}{'REF'} =~ /^HASH$/i) { }
656 0 0 if (ref(${${$input;}{'INPUT'};}[$index]) =~ /^$/i) { }
0 0 elsif (not ref(${${$input;}{'INPUT'};}[$index]) =~ /^HASH$/) { }
663 0 0 if defined ${${${$input;}{'INPUT'};}[$index];}{'DEFAULT'}
664 0 0 if (not defined ${${${$input;}{'INPUT'};}[$index];}{'NAME'}) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}[$index];}{'NAME'}) =~ /^$/) { }
0 0 elsif (defined $parameters{${${${$input;}{'INPUT'};}[$index];}{'NAME'}}) { }
667 0 0 if (not defined ${${${$input;}{'INPUT'};}[$index];}{'REF'}) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}[$index];}{'REF'}) =~ /^$/) { }
0 0 elsif ('' ne ${${${$input;}{'INPUT'};}[$index];}{'REF'}) { }
0 0 elsif ('' ne ref $parameters{${${${$input;}{'INPUT'};}[$index];}{'NAME'}}) { }
668 0 0 if '' eq ref $parameters{${${${$input;}{'INPUT'};}[$index];}{'NAME'}}
682 0 0 unless ref($subInput) =~ /^HASH$/i
684 0 0 if defined ${$subInput;}{'DEFAULT'}
685 0 0 if (not defined ${$subInput;}{'NAME'}) { }
0 0 elsif (not ref(${$subInput;}{'NAME'}) =~ /^$/) { }
0 0 elsif (defined $parameters{${$subInput;}{'NAME'}}) { }
688 0 0 if (not defined ${$subInput;}{'REF'}) { }
0 0 elsif (ref(${$subInput;}{'REF'}) =~ /^ARRAY$/i) { }
0 0 elsif (not ref(${$subInput;}{'REF'}) =~ /^$/) { }
0 0 elsif (${$subInput;}{'REF'} ne ref $parameters{${$subInput;}{'NAME'}}) { }
691 0 0 if defined $refs{ref $parameters{${$subInput;}{'NAME'}}}
704 0 0 if (not defined ${$input;}{'REF'}) { }
0 0 elsif (ref(${$input;}{'REF'}) =~ /^ARRAY$/i) { }
0 0 elsif (not ref(${$input;}{'REF'}) =~ /^$/) { }
0 0 elsif (${$input;}{'REF'} ne ref $parameters{${$input;}{'NAME'}}) { }
0 0 elsif (not ref($parameters{${$input;}{'NAME'}}) =~ /^HASH$/i) { }
707 0 0 if (not defined $refs{ref $parameters{${$input;}{'NAME'}}}) { }
0 0 elsif (not ref($parameters{${$input;}{'NAME'}}) =~ /^HASH$/i) { }
711 0 0 if (not defined ${$input;}{'INPUT'}) { }
0 0 elsif (not ref(${$input;}{'INPUT'}) =~ /^HASH$/i) { }
718 0 0 unless (ref($subInput) =~ /^HASH$/i)
723 0 0 if defined ${${${$input;}{'INPUT'};}{$subInput};}{'DEFAULT'}
724 0 0 if (not defined ${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}) =~ /^$/) { }
0 0 elsif (defined $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}) { }
727 0 0 if (not defined ${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) { }
0 0 elsif (ref(${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) =~ /^ARRAY$/i) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) =~ /^$/) { }
0 0 elsif (${${${$input;}{'INPUT'};}{$subInput};}{'REF'} ne ref $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}) { }
730 0 0 if defined $refs{ref $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}}
747 0 0 if (not defined ${$input;}{'INPUT'}) { }
0 0 elsif (not ref(${$input;}{'INPUT'}) =~ /^HASH$/i) { }
754 0 0 unless (ref($subInput) =~ /^HASH$/i)
759 0 0 if defined ${${${$input;}{'INPUT'};}{$subInput};}{'DEFAULT'}
760 0 0 if (not defined ${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}) =~ /^$/) { }
0 0 elsif (defined $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}) { }
763 0 0 if (not defined ${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) { }
0 0 elsif (ref(${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) =~ /^ARRAY$/i) { }
0 0 elsif (not ref(${${${$input;}{'INPUT'};}{$subInput};}{'REF'}) =~ /^$/) { }
0 0 elsif (${${${$input;}{'INPUT'};}{$subInput};}{'REF'} ne ref $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}) { }
766 0 0 if defined $refs{ref $parameters{${${${$input;}{'INPUT'};}{$subInput};}{'NAME'}}}
781 0 0 if 0 == scalar @inputs
783 0 0 unless defined $handle
827 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
828 0 0 unless defined $$self{'HANDLE'}
829 0 0 if (not defined $$self{'MANAGE_HANDLE'}) { }
0 0 elsif (1 == $$self{'MANAGE_HANDLE'}) { }
900 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
901 0 0 if (not defined $$self{'STATEMENTS'}) { }
0 0 elsif (0 == scalar keys %{$$self{'STATEMENTS'};}) { }
906 0 0 if (not defined $parameters{'STATEMENT'}) { }
0 0 elsif (not ref($parameters{'STATEMENT'}) =~ /^$/) { }
0 0 elsif (not defined ${$$self{'STATEMENTS'};}{$parameters{'STATEMENT'}}) { }
0 0 elsif (not defined ${${$$self{'STATEMENTS'};}{$parameters{'STATEMENT'}};}{'HANDLE'}) { }
908 0 0 if (defined ${${$$self{'STATEMENTS'};}{$statement};}{'HANDLE'})
929 0 0 if 0 == scalar keys %{$$self{'STATEMENTS'};}
972 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
973 0 0 if (defined $handle)
974 0 0 if (defined $$self{'HANDLE'})
978 0 0 unless ref($handle) =~ /^DBI::db$/
982 0 0 if defined $$self{'HANDLE'}
1090 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
1091 0 0 unless defined $$self{'STATEMENTS'}
1092 0 0 unless defined $parameters{'STATEMENT'}
1093 0 0 unless ref($parameters{'STATEMENT'}) =~ /^$/
1094 0 0 unless (defined ${$$self{'STATEMENTS'};}{$parameters{'STATEMENT'}})
1095 0 0 unless defined $parameters{'SQL'}
1096 0 0 unless ref($parameters{'SQL'}) =~ /^$/
1100 0 0 if (0 == $questionMarks) { }
0 0 elsif (not defined $parameters{'INPUT'}) { }
0 0 elsif (not ref($parameters{'INPUT'}) =~ /^ARRAY$/i) { }
0 0 elsif (scalar @{$parameters{'INPUT'};} != $questionMarks) { }
1101 0 0 if defined $parameters{'INPUT'}
1109 0 0 unless $self->binding(@{$parameters{'INPUT'};})
1115 0 0 unless (eval { do { $handle = $$self{'HANDLE'}->prepare($parameters{'SQL'}); 1 } })
1123 0 0 if defined $parameters{'INPUT'}
1126 0 0 if defined $channel
1167 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
1168 0 0 if $self->autocommit
1173 0 0 unless (eval { do { $rollback = $$self{'HANDLE'}->rollback; 1 } })
1176 0 0 unless defined $rollback
1177 0 0 unless ref($rollback) =~ /^$/
1178 0 0 unless $rollback =~ /^[\+\-]?\d+$/
1179 0 0 if $rollback
1553 0 0 if ref($self) =~ /^(|ARRAY|CODE|FORMAT|GLOB|HASH|IO|LVALUE|REF|Regexp|SCALAR|VSTRING)$/i
1556 0 0 if ($prepared) { }
1558 0 0 if (defined ${$prepared;}{'INPUT'})
1564 0 0 unless $bound
1570 0 0 unless (eval { do { $handle = $$self{'HANDLE'}->prepare($parameters{'SQL'}); 1 } })
1576 0 0 if (0 == $questionMarks) { }
0 0 elsif (not defined $parameters{'INPUT'}) { }
0 0 elsif (not ref($parameters{'INPUT'}) =~ /^ARRAY$/i) { }
0 0 elsif (scalar @{$parameters{'INPUT'};} != $questionMarks) { }
1577 0 0 if (defined $parameters{'INPUT'})
1591 0 0 unless ($self->bind('HANDLE', $handle, 'INPUT', $parameters{'INPUT'}, 'VALUE', \%parameters))
1604 0 0 unless (eval { do { $handle->execute; 1 } })
1608 0 0 if (not defined $$handle{'NUM_OF_FIELDS'}) { }
0 0 elsif (undef == $$handle{'NUM_OF_FIELDS'}) { }
0 0 elsif (0 == $$handle{'NUM_OF_FIELDS'}) { }
1619 0 0 unless $prepared
1691 0 0 unless ref($self) =~ /^$/
1693 0 0 unless defined $modules{'Bundle::DBI'}
1695 0 0 if (defined $parameters{'HANDLE'})
1696 0 0 unless ref($parameters{'HANDLE'}) =~ /^DBI::db$/
1698 0 0 unless defined $driver
1701 0 0 if (not defined $parameters{'DRIVER'}) { }
0 0 elsif (not ref($parameters{'DRIVER'}) =~ /^$/) { }
0 0 elsif (defined $parameters{'DRIVERS'}) { }
0 0 elsif (defined $modules{$parameters{'DRIVER'}}) { }
0 0 elsif (defined $modules{'DBD::' . $parameters{'DRIVER'}}) { }
0 0 elsif (not defined $modules{'Bundle::DBD::' . $parameters{'DRIVER'}}) { }
1702 0 0 if (defined $parameters{'DRIVERS'}) { }
0 0 elsif (defined $HANDLE_DRIVER) { }
0 0 elsif (not defined $modules{'Bundle::DBD'}) { }
1703 0 0 if ref($parameters{'DRIVERS'}) =~ /^$/
1704 0 0 unless ref($parameters{'DRIVERS'}) =~ /^ARRAY$/i
1705 0 0 if (defined $HANDLE_DRIVER) { }
1707 0 0 unless ref($DRIVER) =~ /^$/
1708 0 0 if $DRIVER eq $HANDLE_DRIVER
1713 0 0 unless ref($DRIVER) =~ /^$/
1714 0 0 if defined $modules{$DRIVER}
1715 0 0 if defined $modules{'DBD::' . $DRIVER}
1716 0 0 if defined $modules{'Bundle::DBD::' . $DRIVER}
1717 0 0 if defined $reduced{lc $DRIVER}
1718 0 0 if defined $reduced{lc 'DBD::' . $DRIVER}
1719 0 0 if defined $reduced{lc 'Bundle::DBD::' . $DRIVER}
1730 0 0 if ref($parameters{'DRIVERS'}) =~ /^$/
1731 0 0 unless ref($parameters{'DRIVERS'}) =~ /^ARRAY$/i
1741 0 0 unless ref($DRIVER) =~ /^$/
1743 0 0 if defined $DRIVERS{$DRIVER}
1744 0 0 if defined $DRIVERS{'DBD::' . $DRIVER}
1745 0 0 if defined $DRIVERS{'Bundle::DBD::' . $DRIVER}
1746 0 0 if defined $DRIVERS{lc $DRIVER}
1747 0 0 if defined $DRIVERS{lc 'DBD::' . $DRIVER}
1748 0 0 if defined $DRIVERS{lc 'Bundle::DBD::' . $DRIVER}
1751 0 0 unless $found
1752 0 0 if (defined $HANDLE_DRIVER) { }
1754 0 0 unless ref($DRIVER) =~ /^$/
1755 0 0 if $DRIVER eq $HANDLE_DRIVER
1760 0 0 if defined $modules{$DRIVER}
1761 0 0 if defined $modules{'DBD::' . $DRIVER}
1762 0 0 if defined $modules{'Bundle::DBD::' . $DRIVER}
1763 0 0 if defined $reduced{lc $DRIVER}
1764 0 0 if defined $reduced{lc 'DBD::' . $DRIVER}
1765 0 0 if defined $reduced{lc 'Bundle::DBD::' . $DRIVER}
1770 0 0 if (defined $HANDLE_DRIVER)
1771 0 0 if $parameters{'DRIVER'} ne $HANDLE_DRIVER
1774 0 0 if (defined $HANDLE_DRIVER)
1775 0 0 if 'DBD::' . $parameters{'DRIVER'} ne $HANDLE_DRIVER
1779 0 0 if (defined $reduced{lc $parameters{'DRIVER'}}) { }
0 0 elsif (defined $reduced{lc 'DBD::' . $parameters{'DRIVER'}}) { }
0 0 elsif (defined $reduced{lc 'Bundle::DBD::' . $parameters{'DRIVER'}}) { }
1780 0 0 if (defined $HANDLE_DRIVER)
1781 0 0 if lc $parameters{'DRIVER'} ne lc $HANDLE_DRIVER
1784 0 0 if (defined $HANDLE_DRIVER)
1785 0 0 if lc 'DBD::' . $parameters{'DRIVER'} ne lc $HANDLE_DRIVER
1788 0 0 if (defined $HANDLE_DRIVER)
1789 0 0 if lc 'Bundle::DBD::' . $parameters{'DRIVER'} ne lc $HANDLE_DRIVER