minor changes
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / backcompat / 0.04006 / 14ora_common.t
CommitLineData
9a95164d 1use strict;
1c94fb11 2use lib qw(t/backcompat/0.04006/lib);
9a95164d 3use dbixcsl_common_tests;
1c94fb11 4use Test::More;
fb3bb595 5plan skip_all => 'set SCHEMA_LOADER_TESTS_BACKCOMPAT to enable these tests'
1c94fb11 6 unless $ENV{SCHEMA_LOADER_TESTS_BACKCOMPAT};
7
9a95164d 8
9my $dsn = $ENV{DBICTEST_ORA_DSN} || '';
10my $user = $ENV{DBICTEST_ORA_USER} || '';
11my $password = $ENV{DBICTEST_ORA_PASS} || '';
12
13my $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
39if( !$dsn || !$user ) {
40 $tester->skip_tests('You need to set the DBICTEST_ORA_DSN, _USER, and _PASS environment variables');
41}
42else {
43 $tester->run_tests();
44}