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=7bb025f042dd9b76b55f08982581279b0e8603f1;hb=c0ec0e22d3f0e3852c00daac5ef5763010b410c3;hpb=08d91aada45b94a16f3660b5cc10384df5616ff9 diff --git a/t/46xml-to-pg.t b/t/46xml-to-pg.t index 7bb025f..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,20 +33,46 @@ my $sql = $sqlt->translate( filename => $xmlfile, ) or die $sqlt->error; -is($sql, << "SQL"); -DROP TABLE "Basic"; +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 '', - "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"; + +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