X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FSQL-Translator.git;a=blobdiff_plain;f=t%2F46xml-to-pg.t;h=d9dd3277b95ed530e85743ae66571ab51d811613;hp=4747e16ddc4bf44fbca89c7463e27ba800762a2a;hb=c0ec0e22d3f0e3852c00daac5ef5763010b410c3;hpb=a25ac5d2649e414439ab60a075297361f2e5819d diff --git a/t/46xml-to-pg.t b/t/46xml-to-pg.t index 4747e16..d9dd327 100644 --- a/t/46xml-to-pg.t +++ b/t/46xml-to-pg.t @@ -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; @@ -20,7 +21,7 @@ my $xmlfile = "$Bin/data/xml/schema.xml"; my $sqlt; $sqlt = SQL::Translator->new( no_comments => 1, - show_warnings => 1, + show_warnings => 0, add_drop_table => 1, ); @@ -32,38 +33,46 @@ my $sql = $sqlt->translate( filename => $xmlfile, ) or die $sqlt->error; -is($sql, << "SQL"); +eq_or_diff($sql, << "SQL"); DROP TABLE "Basic" CASCADE; CREATE TABLE "Basic" ( "id" serial NOT NULL, "title" character varying(100) DEFAULT 'hello' NOT NULL, "description" text DEFAULT '', - "email" character varying(255), + "email" character varying(500), "explicitnulldef" character varying, "explicitemptystring" character varying DEFAULT '', -- Hello emptytagdef "emptytagdef" character varying DEFAULT '', - "another_id" integer DEFAULT '2', - "timest" timestamp(0), + "another_id" integer DEFAULT 2, + "timest" timestamp, PRIMARY KEY ("id"), - Constraint "emailuniqueindex" UNIQUE ("email") + CONSTRAINT "emailuniqueindex" UNIQUE ("email"), + CONSTRAINT "very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms" UNIQUE ("title") ); CREATE INDEX "titleindex" on "Basic" ("title"); - DROP TABLE "Another" CASCADE; CREATE TABLE "Another" ( "id" serial NOT NULL, + "num" numeric(10,2), PRIMARY KEY ("id") ); +DROP VIEW "email_list"; +CREATE VIEW "email_list" ( "email" ) AS + SELECT email FROM Basic WHERE (email IS NOT NULL) +; +DROP TRIGGER IF EXISTS "foo_trigger"; -DROP VIEW "email_list"; -CREATE VIEW "email_list" ( "email" ) AS ( - SELECT email FROM Basic WHERE email IS NOT NULL - ); +CREATE TRIGGER "foo_trigger" after insert ON "Basic" FOR EACH row update modified=timestamp();; + +DROP TRIGGER IF EXISTS "bar_trigger"; + +CREATE TRIGGER "bar_trigger" before insert OR update ON "Basic" FOR EACH row update modified2=timestamp();; ALTER TABLE "Basic" ADD FOREIGN KEY ("another_id") REFERENCES "Another" ("id") DEFERRABLE; + SQL