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