Author: REHSACK
Date: Mon May 17 06:31:08 2010
New Revision: 13994

Modified:
   dbi/trunk/t/50dbm.t

Log:
add more tests

Modified: dbi/trunk/t/50dbm.t
==============================================================================
--- dbi/trunk/t/50dbm.t (original)
+++ dbi/trunk/t/50dbm.t Mon May 17 06:31:08 2010
@@ -61,7 +61,7 @@
     print "Using DBM modules: @dbm_types\n";
     print "Using MLDBM serializers: @mldbm_types\n" if @mldbm_types;
 
-    $tests_in_group = 14;
+    $tests_in_group = 15;
     my $num_tests = @dbm_types * @mldbm_types * $tests_in_group;
     printf "Test count: %d x %d x %d = %d\n",
         scalar @dbm_types, 0...@mldbm_types, $tests_in_group, $num_tests;
@@ -93,10 +93,7 @@
 rmtree $dir;
 
 sub do_test {
-    my $dtype = shift;
-    my $mldbm = shift;
-    my @sql = @_;
-    my $stmts = \...@sql;
+    my ($dtype, $mldbm, @sql) = @_;
 
     my $test_builder = Test::More->builder;
     my $starting_test_no = $test_builder->current_test;
@@ -148,7 +145,7 @@
     ok($@);
 
     SKIP:
-    for my $sql ( @$stmts ) {
+    for my $sql ( @sql ) {
         $sql =~ s/\S*fruit/${dtype}_fruit/; # include dbm type in table name
         $sql =~ s/;$//;  # in case no final \n on last line of __DATA__
         #diag($sql);
@@ -186,11 +183,14 @@
         my $results='';
         # Note that we can't rely on the order here, it's not portable,
         # different DBMs (or versions) will return different orders.
+       my @key_order;
         while (my ($key, $value) = $sth->fetchrow_array) {
             ok exists $expected_results->{$key};
             is $value, $expected_results->{$key};
+           push @key_order, $key;
         }
         is $DBI::rows, keys %$expected_results;
+       is_deeply( \...@key_order, [ 5, 3, 2, 1 ], 'select result order' );
     }
     $dbh->disconnect;
     return 1;
@@ -204,21 +204,27 @@
 INSERT INTO  fruit VALUES (3, NULL       );
 INSERT INTO  fruit VALUES (4,'to delete' );
 INSERT INTO  fruit VALUES (?,?); #5,via placeholders
+INSERT INTO  fruit VALUES (6,'to delete' );
+INSERT INTO  fruit VALUES (7,'to_delete' );
 DELETE FROM  fruit WHERE dVal='to delete';
 UPDATE fruit SET dVal='apples' WHERE dKey=2;
-SELECT * FROM fruit;
+DELETE FROM  fruit WHERE dKey=7;
+SELECT * FROM fruit ORDER BY dKey DESC;
 DROP TABLE fruit;
 
 DROP TABLE IF EXISTS multi_fruit;
 CREATE TABLE multi_fruit (dKey INT, dVal VARCHAR(10), qux INT);
 INSERT INTO  multi_fruit VALUES (1,'oranges'  , 11 );
-INSERT INTO  multi_fruit VALUES (2,'apples'   ,  0 );
+INSERT INTO  multi_fruit VALUES (2,'to_change',  0 );
 INSERT INTO  multi_fruit VALUES (3, NULL      , 13 );
 INSERT INTO  multi_fruit VALUES (4,'to_delete', 14 );
 INSERT INTO  multi_fruit VALUES (?,?,?); #5,via placeholders,15
-UPDATE multi_fruit SET qux='12' WHERE dKey=2;
-DELETE FROM  multi_fruit WHERE dKey=4;
-SELECT dKey,qux FROM multi_fruit;
+INSERT INTO  multi_fruit VALUES (6,'to_delete', 16 );
+INSERT INTO  multi_fruit VALUES (7,'to delete', 17 );
+INSERT INTO  multi_fruit VALUES (8,'to remove', 18 );
+UPDATE multi_fruit SET dVal='apples', qux='12' WHERE dKey=2;
+DELETE FROM  multi_fruit WHERE dVal='to_delete';
+DELETE FROM  multi_fruit WHERE qux=17;
+DELETE FROM  multi_fruit WHERE dKey=8;
+SELECT dKey,qux FROM multi_fruit ORDER BY dKey DESC;
 DROP TABLE multi_fruit;
-
-

Reply via email to