[DBD::Pg 12/14] Update test cases for DUMMY, valid types
dbdpg-commits-gENoVmVU/[email protected] Sun, 27 Jul 2014 05:14:13 +0000
| Newsgroups | gmane.comp.db.postgresql.dbdpg.cvs |
|---|---|
| Message-ID | <[email protected]> |
Committed by pilcrow <[email protected]> Subject: [DBD::Pg 12/14] Update test cases for DUMMY, valid types --- t/03dbmethod.t | 51 +++++++++++++++++++++++---------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/t/03dbmethod.t b/t/03dbmethod.t index d6f7725..32934de 100644 --- a/t/03dbmethod.t +++ b/t/03dbmethod.t @@ -516,10 +516,10 @@ $sth = $dbh->table_info(undef,undef,undef,'TABLE,VIEW,SYSTEM TABLE,SYSTEM VIEW') $number = $sth->rows(); cmp_ok ($number, '>', 1, $t); -$t='DB handle method "table_info" returns correct number of rows when given an invalid type argument'; +$t='DB handle method "table_info" returns zero rows when given an invalid type argument'; $sth = $dbh->table_info(undef,undef,undef,'DUMMY'); $rows = $sth->rows(); -is ($rows, $number, $t); +is ($rows, 0, $t); $t=q{DB handle method "table_info" returns correct number of rows when given a 'VIEW' type argument}; $sth = $dbh->table_info(undef,undef,undef,'VIEW'); @@ -549,38 +549,33 @@ $t='DB handle method "table_info" works when called with a schema of %'; $sth = $dbh->table_info('', '%', ''); ok ($sth, $t); -# Test listing table types -my %supported_types = ( - 'LOCAL TEMPORARY' => 1, - 'SYSTEM TABLE' => 1, - 'SYSTEM VIEW' => 1, - TABLE => 1, - VIEW => 1, -); +{ # Test listing table types + +my @expected = ('LOCAL TEMPORARY', + 'SYSTEM TABLE', + 'SYSTEM VIEW', + 'TABLE', + 'VIEW',); $t='DB handle method "table_info" works when called with a type of %'; $sth = $dbh->table_info('', '', '', '%'); -ok ($sth, $t); -$t='DB handle method "table_info" type inquiry returns all supported types'; -my @types = map { $_->[0] } @{$sth->fetchall_arrayref([3])}; -is_deeply([sort @types], [sort keys %supported_types], $t); +ok($sth, $t); -# Test that actually seen types are a subset of supported types -$t='DB handle method "table_info" works when called with schema, table, and type of %'; -$sth = $dbh->table_info('', '%', '%', '%'); -ok ($sth, $t); +$t='DB handle method "table_info" type list returns all expected types'; +my %advertised = map { $_->[0] => 1 } @{ $sth->fetchall_arrayref([3]) }; +is_deeply([sort keys %advertised], [sort @expected], $t); -$t='DB handle method "table_info" object inquiry saw at least one object'; -$rows = $sth->fetchall_arrayref([3]); -ok(scalar @$rows, $t); +$t='DB handle method "table_info" object list returns no unadvertised types'; +$sth = $dbh->table_info('', '', '%'); +my %surprises = map { $_->[0] => 1 } + grep { ! $advertised{$_->[0]} } + @{ $sth->fetchall_arrayref([3]) }; -$t='DB handle method "table_info" object inquiry no types unknown to "table_info" type query'; -my %unexpected_types; -for (@$rows) { - my ($type) = @$_; - $unexpected_types{$type} = 1 unless exists $supported_types{$type}; -} -is_deeply([keys %unexpected_types], [], $t); +is_deeply([keys %surprises], [], $t) + or diag("Objects of unexpected type(s) found: " + . join(', ', sort keys %surprises)); + +} # END test listing table types # # Test of the "column_info" database handle method -- 1.8.4