3d556021eb29c7aaec121e5a846f402e5d05606d
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / backcompat / 0.04006 / 14ora_common.t
1 use strict;
2 use lib qw(t/backcompat/0.04006/lib);
3 use dbixcsl_common_tests;
4 use Test::More;
5 plan skip_all => 'set SCHEMA_LOADER_TESTS_BACKCOMPAT to enable these tests'
6     unless $ENV{SCHEMA_LOADER_TESTS_BACKCOMPAT};
7
8
9 my $dsn      = $ENV{DBICTEST_ORA_DSN} || '';
10 my $user     = $ENV{DBICTEST_ORA_USER} || '';
11 my $password = $ENV{DBICTEST_ORA_PASS} || '';
12
13 my $tester = dbixcsl_common_tests->new(
14     vendor      => 'Oracle',
15     auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY',
16     auto_inc_cb => sub {
17         my ($table, $col) = @_;
18         return (
19             qq{ CREATE SEQUENCE ${table}_${col}_seq START WITH 1 INCREMENT BY 1},
20             qq{ 
21                 CREATE OR REPLACE TRIGGER ${table}_${col}_trigger
22                 BEFORE INSERT ON ${table}
23                 FOR EACH ROW
24                 BEGIN
25                     SELECT ${table}_${col}_seq.nextval INTO :NEW.${col} FROM dual;
26                 END;
27             }
28         );
29     },
30     auto_inc_drop_cb => sub {
31         my ($table, $col) = @_;
32         return qq{ DROP SEQUENCE ${table}_${col}_seq };
33     },
34     dsn         => $dsn,
35     user        => $user,
36     password    => $password,
37 );
38
39 if( !$dsn || !$user ) {
40     $tester->skip_tests('You need to set the DBICTEST_ORA_DSN, _USER, and _PASS environment variables');
41 }
42 else {
43     $tester->run_tests();
44 }