Merge 'trunk' into 'roundtrip'
Peter Rabbitson [Sun, 3 May 2009 02:25:45 +0000 (02:25 +0000)]
r1520@Thesaurus (orig r1519):  ribasushi | 2009-05-03 03:20:27 +0200
Teah xml parser about database_events
r1521@Thesaurus (orig r1520):  ribasushi | 2009-05-03 03:27:29 +0200
Extra data and first test for xml database_event support
r1522@Thesaurus (orig r1521):  ribasushi | 2009-05-03 03:45:10 +0200
Improve xml database_event deprecation warning
Only issue warning if show_warnings was set on translator
Fix tests to suppress warn noise
r1523@Thesaurus (orig r1522):  ribasushi | 2009-05-03 04:18:28 +0200
Teach sqlite how to deal with multi-event triggers
r1524@Thesaurus (orig r1523):  ribasushi | 2009-05-03 04:19:09 +0200
Adjust xml-db2 tests
r1525@Thesaurus (orig r1524):  ribasushi | 2009-05-03 04:22:55 +0200
Add Carp::Clan to dependencies

1  2 
t/16xml-parser.t
t/18ttschema-producer.t
t/46xml-to-pg.t
t/data/xml/schema.xml

diff --combined t/16xml-parser.t
@@@ -27,7 -27,7 +27,7 @@@ use constant DEBUG => (exists $opt{d} 
  #=============================================================================
  
  BEGIN {
-     maybe_plan(204, 'SQL::Translator::Parser::XML::SQLFairy');
+     maybe_plan(212, 'SQL::Translator::Parser::XML::SQLFairy');
  }
  
  my $testschema = "$Bin/data/xml/schema.xml";
@@@ -39,12 -39,21 +39,21 @@@ $sqlt = SQL::Translator->new
      add_drop_table => 1,
  );
  die "Can't find test schema $testschema" unless -e $testschema;
- my $sql = $sqlt->translate(
+ my $sql;
+ {
+   my @w;
+   local $SIG{__WARN__} = sub { push @w, $_[0] if $_[0] =~ /The database_event tag is deprecated - please use database_events/ };
+   $sql = $sqlt->translate(
      from     => 'XML-SQLFairy',
      to       => 'MySQL',
      filename => $testschema,
- ) or die $sqlt->error;
- print $sql if DEBUG;
+   ) or die $sqlt->error;
+   print $sql if DEBUG;
+   ok (@w, 'database_event deprecation warning issued');
+ }
  
  # Test the schema objs generted from the XML
  #
@@@ -90,7 -99,7 +99,7 @@@ schema_ok( $scma, 
                  {
                      name => "email",
                      data_type => "varchar",
 -                    size => 255,
 +                    size => 500,
                      is_unique => 1,
                      default_value => undef,
                      is_nullable => 1,
                  bar => "baz",
              },
          },
+         {
+             name                => 'bar_trigger',
+             perform_action_when => 'before',
+             database_events     => 'insert,update',
+             on_table            => 'Basic',
+             action              => 'update modified2=timestamp();',
+             extra => {
+                 hello => "aliens",
+             },
+         },
      ],
  
      procedures => [
diff --combined t/18ttschema-producer.t
@@@ -38,7 -38,7 +38,7 @@@ use SQL::Translator::Producer::TTSchema
  {
      my $obj;
      $obj = SQL::Translator->new(
-         show_warnings  => 1,
+         show_warnings  => 0,
          from           => "XML-SQLFairy",
          filename       => "$Bin/data/xml/schema.xml",
          to             => "TTSchema",
@@@ -65,7 -65,7 +65,7 @@@
      [%- END %]};
      my $obj;
      $obj = SQL::Translator->new(
-         show_warnings  => 1,
+         show_warnings  => 0,
          from           => "XML-SQLFairy",
          filename       => "$Bin/data/xml/schema.xml",
          to             => "TTSchema",
@@@ -146,7 -146,7 +146,7 @@@ Field
      
      email
          data_type:             varchar
 -        size:                  255
 +        size:                  500
          is_nullable:           1
          default_value:         
          is_primary_key:        0
diff --combined t/46xml-to-pg.t
@@@ -21,7 -21,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,
  );
  
@@@ -39,7 -39,7 +39,7 @@@ 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
diff --combined t/data/xml/schema.xml
@@@ -24,7 -24,7 +24,7 @@@ Created on Fri Aug 15 15:08:18 200
            <field
                name="description"
                size="0" data_type="text" order="3" default_value="" />
 -          <field name="email" size="255" data_type="varchar" order="4">
 +          <field name="email" size="500" data_type="varchar" order="4">
                <extra foo="bar" hello="world" bar="baz" />
            </field>
            <field name="explicitnulldef" size="0" data_type="varchar" order="5" />
    </views>
  
    <triggers>
-       <trigger name="foo_trigger" database_events="insert" on_table="Basic"
+       <trigger name="foo_trigger" database_event="insert" on_table="Basic"
            perform_action_when="after" order="1">
            <action>update modified=timestamp();</action>
            <extra foo="bar" hello="world" bar="baz" />
        </trigger>
+       <trigger name="bar_trigger" database_events="insert , update" on_table="Basic"
+           perform_action_when="before" order="1">
+           <action>update modified2=timestamp();</action>
+           <extra hello="aliens" />
+       </trigger>
    </triggers>
  
    <procedures>