Add generic custom_column_info, remove oracle specific test
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 14ora_common.t
index 75bd98c..1bbe5f1 100644 (file)
@@ -1,6 +1,8 @@
 use strict;
 use lib qw(t/lib);
 use dbixcsl_common_tests;
+use Test::More;
+use Test::Exception;
 
 my $dsn      = $ENV{DBICTEST_ORA_DSN} || '';
 my $user     = $ENV{DBICTEST_ORA_USER} || '';
@@ -8,11 +10,28 @@ my $password = $ENV{DBICTEST_ORA_PASS} || '';
 
 my $tester = dbixcsl_common_tests->new(
     vendor      => 'Oracle',
-    auto_inc_pk => 'SERIAL NOT NULL PRIMARY KEY',
+    auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY',
+    auto_inc_cb => sub {
+        my ($table, $col) = @_;
+        return (
+            qq{ CREATE SEQUENCE ${table}_${col}_seq START WITH 1 INCREMENT BY 1},
+            qq{ 
+                CREATE OR REPLACE TRIGGER ${table}_${col}_trigger
+                BEFORE INSERT ON ${table}
+                FOR EACH ROW
+                BEGIN
+                    SELECT ${table}_${col}_seq.nextval INTO :NEW.${col} FROM dual;
+                END;
+            }
+        );
+    },
+    auto_inc_drop_cb => sub {
+        my ($table, $col) = @_;
+        return qq{ DROP SEQUENCE ${table}_${col}_seq };
+    },
     dsn         => $dsn,
     user        => $user,
     password    => $password,
-    no_auto_increment => 1,
 );
 
 if( !$dsn || !$user ) {