Get Storage::Oracle to behave when quoting is enabled
[dbsrgits/DBIx-Class.git] / t / 750firebird.t
index 7e4db43..3618edf 100644 (file)
@@ -75,11 +75,11 @@ EOF
 EOF
   $dbh->do('ALTER TABLE "sequence_test" ADD CONSTRAINT "sequence_test_constraint" PRIMARY KEY ("pkid1", "pkid2")');
   eval { $dbh->do('DROP GENERATOR "pkid1_seq"') };
-  eval { $dbh->do('DROP GENERATOR "pkid2_seq"') };
+  eval { $dbh->do('DROP GENERATOR pkid2_seq') };
   eval { $dbh->do('DROP GENERATOR "nonpkid_seq"') };
   $dbh->do('CREATE GENERATOR "pkid1_seq"');
-  $dbh->do('CREATE GENERATOR "pkid2_seq"');
-  $dbh->do('SET GENERATOR "pkid2_seq" TO 9');
+  $dbh->do('CREATE GENERATOR pkid2_seq');
+  $dbh->do('SET GENERATOR pkid2_seq TO 9');
   $dbh->do('CREATE GENERATOR "nonpkid_seq"');
   $dbh->do('SET GENERATOR "nonpkid_seq" TO 19');
 
@@ -101,7 +101,7 @@ EOF
   is($st->pkid1, 55, "Firebird Auto-PK without trigger: First primary key set manually");
 
 # test savepoints
-  eval {
+  throws_ok {
     $schema->txn_do(sub {
       eval {
         $schema->txn_do(sub {
@@ -114,9 +114,7 @@ EOF
       $ars->create({ name => 'in_outer_txn' });
       die "rolling back outer txn";
     });
-  };
-
-  like $@, qr/rolling back outer txn/,
+  } qr/rolling back outer txn/,
     'correct exception for rollback';
 
   ok ((not $ars->search({ name => 'in_outer_txn' })->first),
@@ -184,13 +182,15 @@ EOF
   is( eval { $lim->next->artistid }, 102, "iterator->next ok" );
   is( $lim->next, undef, "next past end of resultset ok" );
 
-# test multiple executing cursors
+# test nested cursors
   {
     my $rs1 = $ars->search({}, { order_by => { -asc  => 'artistid' }});
-    my $rs2 = $ars->search({}, { order_by => { -desc => 'artistid' }});
 
-    is $rs1->next->artistid, 1,   'multiple cursors';
-    is $rs2->next->artistid, 102, 'multiple cursors';
+    my $rs2 = $ars->search({ artistid => $rs1->next->artistid }, {
+      order_by => { -desc => 'artistid' }
+    });
+
+    is $rs2->next->artistid, 1, 'nested cursors';
   }
 
 # test empty insert
@@ -241,7 +241,18 @@ EOF
       lives_ok { $rs->create( { 'id' => $id, $type => $binstr{$size} } ) }
       "inserted $size $type without dying";
 
-      ok($rs->find($id)->$type eq $binstr{$size}, "verified inserted $size $type" );
+      my $got = $rs->find($id)->$type;
+
+      my $hexdump = sub { join '', map sprintf('%02X', ord), split //, shift };
+
+      ok($got eq $binstr{$size}, "verified inserted $size $type" )
+        or do {
+            diag "For " . (ref $schema->storage) . "\n";
+            diag "Got blob:\n";
+            diag $hexdump->(substr($got,0,50));
+            diag "Expecting blob:\n";
+            diag $hexdump->(substr($binstr{$size},0,50));
+        };
     }
   }
 }
@@ -261,9 +272,13 @@ sub cleanup {
   eval { $dbh->do('DROP TRIGGER "artist_bi"') };
   diag $@ if $@;
 
-  foreach my $generator (qw/gen_artist_artistid pkid1_seq pkid2_seq
-                            nonpkid_seq/) {
-    eval { $dbh->do(qq{DROP GENERATOR "$generator"}) };
+  foreach my $generator (qw/
+    "gen_artist_artistid"
+    "pkid1_seq"
+    pkid2_seq
+    "nonpkid_seq"
+  /) {
+    eval { $dbh->do(qq{DROP GENERATOR $generator}) };
     diag $@ if $@;
   }