better type info for DB2
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 14ora_common.t
index 639e416..294b1e5 100644 (file)
@@ -29,6 +29,8 @@ my $tester = dbixcsl_common_tests->new(
         my ($table, $col) = @_;
         return qq{ DROP SEQUENCE ${table}_${col}_seq };
     },
+    preserve_case_mode_is_exclusive => 1,
+    quote_char                      => '"',
     dsn         => $dsn,
     user        => $user,
     password    => $password,
@@ -52,21 +54,21 @@ my $tester = dbixcsl_common_tests->new(
         #
         # integer/decimal/numeric is alised to NUMBER
         #
-        'decimal'      => { data_type => 'integer' },
-        'dec'          => { data_type => 'integer' },
-        'numeric'      => { data_type => 'integer' },
+        'integer'      => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
+        'int'          => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
+        'smallint'     => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
 
-        'decimal(3)'   => { data_type => 'numeric', size => [3,0] },
-        'dec(3)'       => { data_type => 'numeric', size => [3,0] },
-        'numeric(3)'   => { data_type => 'numeric', size => [3,0] },
+        'decimal'      => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
+        'dec'          => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
+        'numeric'      => { data_type => 'integer', original => { data_type => 'number', size => [38,0] } },
 
-        'decimal(3,3)' => { data_type => 'numeric', size => [3,3] },
-        'dec(3,3)'     => { data_type => 'numeric', size => [3,3] },
-        'numeric(3,3)' => { data_type => 'numeric', size => [3,3] },
+        'decimal(3)'   => { data_type => 'numeric', size => [3,0], original => { data_type => 'number' } },
+        'dec(3)'       => { data_type => 'numeric', size => [3,0], original => { data_type => 'number' } },
+        'numeric(3)'   => { data_type => 'numeric', size => [3,0], original => { data_type => 'number' } },
 
-        'integer'      => { data_type => 'integer' },
-        'int'          => { data_type => 'integer' },
-        'smallint'     => { data_type => 'integer' },
+        'decimal(3,3)' => { data_type => 'numeric', size => [3,3], original => { data_type => 'number' } },
+        'dec(3,3)'     => { data_type => 'numeric', size => [3,3], original => { data_type => 'number' } },
+        'numeric(3,3)' => { data_type => 'numeric', size => [3,3], original => { data_type => 'number' } },
 
         'binary_float'  => { data_type => 'real',             original => { data_type => 'binary_float'  } },
         'binary_double' => { data_type => 'double precision', original => { data_type => 'binary_double' } },
@@ -84,9 +86,7 @@ my $tester = dbixcsl_common_tests->new(
         'nclob'        => { data_type => 'nclob' },
         'blob'         => { data_type => 'blob' },
         'bfile'        => { data_type => 'bfile' },
-        # these must be tested one at a time, can't have 2 longs in one table
-        # XXX add overrides to type tester to handle this
-#        'long'         => { data_type => 'long' },
+        'long'         => { data_type => 'long' },
         'long raw'     => { data_type => 'long raw' },
 
         # Datetime Types
@@ -124,6 +124,23 @@ my $tester = dbixcsl_common_tests->new(
         'urowid'       => { data_type => 'urowid' },
         'urowid(3333)' => { data_type => 'urowid', size => 3333 },
     },
+    extra => {
+        count => 1,
+        run   => sub {
+            my ($schema, $monikers, $classes) = @_;
+
+            SKIP: {
+                if (my $source = $monikers->{loader_test1s}) {
+                    is $schema->source($source)->column_info('id')->{sequence},
+                        'loader_test1s_id_seq',
+                        'Oracle sequence detection';
+                }
+                else {
+                    skip 'not running common tests', 1;
+                }
+            }
+        },
+    },
 );
 
 if( !$dsn || !$user ) {