3b1920da1ee3b87d8152f1b1bf163b6f43f944f2
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / backcompat / 0.04006 / 14ora_common.t
1 use DBIx::Class::Schema::Loader::Optional::Dependencies
2     -skip_all_without => qw(test_backcompat test_rdbms_oracle);
3
4 use strict;
5 use warnings;
6 use lib qw(t/backcompat/0.04006/lib);
7 use dbixcsl_common_tests;
8 use Test::More;
9
10 my $dsn      = $ENV{DBICTEST_ORA_DSN} || '';
11 my $user     = $ENV{DBICTEST_ORA_USER} || '';
12 my $password = $ENV{DBICTEST_ORA_PASS} || '';
13
14 dbixcsl_common_tests->new(
15     vendor      => 'Oracle',
16     auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY',
17     auto_inc_cb => sub {
18         my ($table, $col) = @_;
19         return (
20             qq{ CREATE SEQUENCE ${table}_${col}_seq START WITH 1 INCREMENT BY 1},
21             qq{ 
22                 CREATE OR REPLACE TRIGGER ${table}_${col}_trigger
23                 BEFORE INSERT ON ${table}
24                 FOR EACH ROW
25                 BEGIN
26                     SELECT ${table}_${col}_seq.nextval INTO :NEW.${col} FROM dual;
27                 END;
28             }
29         );
30     },
31     auto_inc_drop_cb => sub {
32         my ($table, $col) = @_;
33         return qq{ DROP SEQUENCE ${table}_${col}_seq };
34     },
35     dsn         => $dsn,
36     user        => $user,
37     password    => $password,
38 )->run_tests();