table/field counts are held per-object, not globally
[dbsrgits/SQL-Translator.git] / t / 18ttschema-producer.t
index 5002d1e..2df7891 100644 (file)
@@ -16,12 +16,18 @@ use FindBin qw/$Bin/;
 #=============================================================================
 
 BEGIN {
+    eval {require Template;};
+
+    if ( $@ ) {
+        plan skip_all => 'Template not installed?'
+    }
+
     maybe_plan(6, 
         'XML::XPath', 
         'SQL::Translator::Parser::XML::SQLFairy',
         'Template', 
         'Test::Differences'
-    )
+    );
 }
 use Test::Differences;
 
@@ -32,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",
@@ -59,7 +65,7 @@ use SQL::Translator::Producer::TTSchema;
     [%- END %]};
     my $obj;
     $obj = SQL::Translator->new(
-        show_warnings  => 1,
+        show_warnings  => 0,
         from           => "XML-SQLFairy",
         filename       => "$Bin/data/xml/schema.xml",
         to             => "TTSchema",
@@ -79,7 +85,8 @@ use SQL::Translator::Producer::TTSchema;
     ok $out ne ""                        ,"Produced something!";
     local $/ = undef; # slurp
     eq_or_diff $out, q{
-    Table: Basic}              
+    Table: Basic
+    Table: Another}
     ,"Output looks right";
 }
 
@@ -139,7 +146,7 @@ Fields
     
     email
         data_type:             varchar
-        size:                  255
+        size:                  500
         is_nullable:           1
         default_value:         
         is_primary_key:        0
@@ -193,6 +200,20 @@ Fields
         order:                 7
         table:                 Basic
     
+    another_id
+        data_type:             int
+        size:                  10
+        is_nullable:           1
+        default_value:         2
+        is_primary_key:        0
+        is_unique:             0
+        is_auto_increment:     0
+        is_foreign_key:        1
+        foreign_key_reference: Another
+        is_valid:              1
+        order:                 8
+        table:                 Basic
+    
     timest
         data_type:             timestamp
         size:                  0
@@ -204,7 +225,7 @@ Fields
         is_foreign_key:        0
         foreign_key_reference: 
         is_valid:              1
-        order:                 8
+        order:                 9
         table:                 Basic
     
 
@@ -244,3 +265,51 @@ Constraints
         options:          
         is_valid:         1
     
+    ?
+        type:             FOREIGN KEY
+        fields:           another_id
+        expression:       
+        match_type:       
+        reference_fields: id
+        reference_table:  Another
+        deferrable:       1
+        on_delete:        
+        on_update:        
+        options:          
+        is_valid:         1
+    
+Table: Another
+==========================================================================
+
+Fields
+    id
+        data_type:             int
+        size:                  10
+        is_nullable:           0
+        default_value:         
+        is_primary_key:        1
+        is_unique:             0
+        is_auto_increment:     1
+        is_foreign_key:        0
+        foreign_key_reference: 
+        is_valid:              1
+        order:                 1
+        table:                 Another
+    
+
+Indices
+    
+Constraints
+    ?
+        type:             PRIMARY KEY
+        fields:           id
+        expression:       
+        match_type:       
+        reference_fields: 
+        reference_table:  
+        deferrable:       1
+        on_delete:        
+        on_update:        
+        options:          
+        is_valid:         1
+