patch from abraxxa (Alexander Hartmaier) to truncate unique constraint names that...
[dbsrgits/SQL-Translator.git] / t / 51-xml-to-oracle.t
index c0681c7..c72ea4c 100644 (file)
@@ -5,6 +5,7 @@ use FindBin qw/$Bin/;
 use Test::More;
 use Test::SQL::Translator;
 use Test::Exception;
+use Test::Differences;
 use Data::Dumper;
 use SQL::Translator;
 use SQL::Translator::Schema::Constants;
@@ -19,7 +20,9 @@ my $xmlfile = "$Bin/data/xml/schema.xml";
 my $sqlt;
 $sqlt = SQL::Translator->new(
     no_comments => 1,
-    show_warnings  => 1,
+    quote_table_names => 0,
+    quote_field_names => 0,
+    show_warnings  => 0,
     add_drop_table => 1,
 );
 
@@ -45,24 +48,27 @@ my $want = [
   id number(10) NOT NULL,
   title varchar2(100) DEFAULT \'hello\' NOT NULL,
   description clob DEFAULT \'\',
-  email varchar2(255),
-  explicitnulldef varchar2,
-  explicitemptystring varchar2 DEFAULT \'\',
-  emptytagdef varchar2 DEFAULT \'\',
+  email varchar2(500),
+  explicitnulldef varchar2(4000),
+  explicitemptystring varchar2(4000) DEFAULT \'\',
+  emptytagdef varchar2(4000) DEFAULT \'\',
   another_id number(10) DEFAULT \'2\',
   timest date,
   PRIMARY KEY (id),
-  CONSTRAINT emailuniqueindex UNIQUE (email)
+  CONSTRAINT u_Basic_emailuniqueindex UNIQUE (email),
+  CONSTRAINT u_Basic_very_long_index_name_o UNIQUE (title)
 )',
           'DROP TABLE Another CASCADE CONSTRAINTS',
           'DROP SEQUENCE sq_Another_id',
           'CREATE SEQUENCE sq_Another_id',
           'CREATE TABLE Another (
   id number(10) NOT NULL,
+  num number(10,2),
   PRIMARY KEY (id)
 )',
+'DROP VIEW email_list',
           'CREATE VIEW email_list AS
-SELECT email FROM Basic WHERE email IS NOT NULL',
+SELECT email FROM Basic WHERE (email IS NOT NULL)',
           'ALTER TABLE Basic ADD CONSTRAINT Basic_another_id_fk FOREIGN KEY (another_id) REFERENCES Another (id)',
           'CREATE OR REPLACE TRIGGER ai_Basic_id
 BEFORE INSERT ON Basic
@@ -97,7 +103,7 @@ END;
 
 is_deeply(\@sql, $want, 'Got correct Oracle statements in list context');
 
-is($sql_string, q|DROP TABLE Basic CASCADE CONSTRAINTS;
+eq_or_diff($sql_string, q|DROP TABLE Basic CASCADE CONSTRAINTS;
 
 DROP SEQUENCE sq_Basic_id01;
 
@@ -107,14 +113,15 @@ CREATE TABLE Basic (
   id number(10) NOT NULL,
   title varchar2(100) DEFAULT 'hello' NOT NULL,
   description clob DEFAULT '',
-  email varchar2(255),
-  explicitnulldef varchar2,
-  explicitemptystring varchar2 DEFAULT '',
-  emptytagdef varchar2 DEFAULT '',
+  email varchar2(500),
+  explicitnulldef varchar2(4000),
+  explicitemptystring varchar2(4000) DEFAULT '',
+  emptytagdef varchar2(4000) DEFAULT '',
   another_id number(10) DEFAULT '2',
   timest date,
   PRIMARY KEY (id),
-  CONSTRAINT emailuniqueindex UNIQUE (email)
+  CONSTRAINT u_Basic_emailuniqueindex01 UNIQUE (email),
+  CONSTRAINT u_Basic_very_long_index_name01 UNIQUE (title)
 );
 
 DROP TABLE Another CASCADE CONSTRAINTS;
@@ -125,11 +132,14 @@ CREATE SEQUENCE sq_Another_id01;
 
 CREATE TABLE Another (
   id number(10) NOT NULL,
+  num number(10,2),
   PRIMARY KEY (id)
 );
 
+DROP VIEW email_list;
+
 CREATE VIEW email_list AS
-SELECT email FROM Basic WHERE email IS NOT NULL;
+SELECT email FROM Basic WHERE (email IS NOT NULL);
 
 ALTER TABLE Basic ADD CONSTRAINT Basic_another_id_fk01 FOREIGN KEY (another_id) REFERENCES Another (id);
 
@@ -165,4 +175,6 @@ BEGIN
  INTO :new.id
  FROM dual;
 END;
-/|);
+/
+
+|);