Commit | Line | Data |
0494e672 |
1 | #!/usr/local/bin/perl |
2 | # vim: set ft=perl: |
3 | |
b4bc8f6f |
4 | use strict; |
2d691ec1 |
5 | use Test::More; |
b4bc8f6f |
6 | use SQL::Translator; |
2d691ec1 |
7 | use Test::SQL::Translator qw(maybe_plan); |
0494e672 |
8 | |
9 | my $create = q| |
10 | CREATE TABLE random ( |
11 | id int auto_increment PRIMARY KEY, |
12 | foo varchar(255) not null default '', |
1868ddbe |
13 | bar enum('wibble','wo''bble'), |
0494e672 |
14 | updated timestamp |
15 | ); |
041e659f |
16 | CREATE UNIQUE INDEX random_foo_update ON random(foo,updated); |
17 | CREATE INDEX random_foo ON random(foo); |
18 | |
0494e672 |
19 | |; |
20 | |
2d691ec1 |
21 | BEGIN { |
1868ddbe |
22 | maybe_plan(undef, |
2d691ec1 |
23 | 'SQL::Translator::Parser::MySQL', |
24 | 'SQL::Translator::Producer::Oracle'); |
25 | } |
26 | |
b4bc8f6f |
27 | my $tr = SQL::Translator->new( |
28 | parser => "MySQL", |
15861005 |
29 | producer => "Oracle", |
7769504d |
30 | quote_table_names => 0, |
31 | quote_field_names => 0, |
b4bc8f6f |
32 | ); |
0494e672 |
33 | |
041e659f |
34 | my $output = $tr->translate(\$create); |
49e890e6 |
35 | |
041e659f |
36 | ok( $output, 'Translate MySQL to Oracle' ); |
37 | ok( $output =~ /CREATE INDEX random_foo /, 'Normal index definition translated.'); |
38 | ok( $output =~ /CREATE UNIQUE INDEX random_foo_update /, 'Unique index definition translated.'); |
1868ddbe |
39 | ok( $output =~ /\QCHECK (bar IN ('wibble', 'wo''bble'))\E/, 'Enum translated and escaped.'); |
40 | |
41 | done_testing; |