Escape quotes in string values in producers
[dbsrgits/SQL-Translator.git] / t / 03mysql-to-oracle.t
CommitLineData
0494e672 1#!/usr/local/bin/perl
2# vim: set ft=perl:
3
b4bc8f6f 4use strict;
2d691ec1 5use Test::More;
b4bc8f6f 6use SQL::Translator;
2d691ec1 7use Test::SQL::Translator qw(maybe_plan);
0494e672 8
9my $create = q|
10CREATE 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 16CREATE UNIQUE INDEX random_foo_update ON random(foo,updated);
17CREATE INDEX random_foo ON random(foo);
18
0494e672 19|;
20
2d691ec1 21BEGIN {
1868ddbe 22 maybe_plan(undef,
2d691ec1 23 'SQL::Translator::Parser::MySQL',
24 'SQL::Translator::Producer::Oracle');
25}
26
b4bc8f6f 27my $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 34my $output = $tr->translate(\$create);
49e890e6 35
041e659f 36ok( $output, 'Translate MySQL to Oracle' );
37ok( $output =~ /CREATE INDEX random_foo /, 'Normal index definition translated.');
38ok( $output =~ /CREATE UNIQUE INDEX random_foo_update /, 'Unique index definition translated.');
1868ddbe 39ok( $output =~ /\QCHECK (bar IN ('wibble', 'wo''bble'))\E/, 'Enum translated and escaped.');
40
41done_testing;