Added quote-field-names, quote-table-names options
[dbsrgits/SQL-Translator.git] / t / 24yaml.t
index 335397d..78c1c29 100644 (file)
@@ -2,19 +2,54 @@
 # vim: set ft=perl:
 
 use strict;
-use Test::More tests => 2;
+use Test::More;
 use Test::Differences;
+use Test::SQL::Translator qw(maybe_plan);
 use SQL::Translator;
 use FindBin '$Bin';
 
-my $yaml = q/--- #YAML:1.0
+BEGIN {
+    maybe_plan(2,
+        'SQL::Translator::Parser::SQLite',
+        'SQL::Translator::Producer::YAML');
+}
+
+my $sqlt_version = $SQL::Translator::VERSION;
+my $yaml = <<YAML;
+---
 schema:
   procedures: {}
   tables:
     person:
       comments: ''
+      constraints:
+        - deferrable: 1
+          expression: ''
+          fields:
+            - person_id
+          match_type: ''
+          name: ''
+          on_delete: ''
+          on_update: ''
+          options: []
+          reference_fields: []
+          reference_table: ''
+          type: PRIMARY KEY
+        - deferrable: 1
+          expression: ''
+          fields:
+            - name
+          match_type: ''
+          name: u_name
+          on_delete: ''
+          on_update: ''
+          options: []
+          reference_fields: []
+          reference_table: ''
+          type: UNIQUE
       fields:
         age:
+          comments: ''
           data_type: integer
           default_value: ~
           extra: {}
@@ -26,6 +61,7 @@ schema:
           size:
             - 0
         description:
+          comments: ''
           data_type: text
           default_value: ~
           extra: {}
@@ -37,6 +73,7 @@ schema:
           size:
             - 0
         iq:
+          comments: ''
           data_type: tinyint
           default_value: 0
           extra: {}
@@ -48,6 +85,7 @@ schema:
           size:
             - 0
         name:
+          comments: ''
           data_type: varchar
           default_value: ~
           extra: {}
@@ -59,6 +97,7 @@ schema:
           size:
             - 20
         person_id:
+          comments: ''
           data_type: INTEGER
           default_value: ~
           extra: {}
@@ -70,6 +109,7 @@ schema:
           size:
             - 0
         weight:
+          comments: ''
           data_type: double
           default_value: ~
           extra: {}
@@ -81,14 +121,40 @@ schema:
           size:
             - 11
             - 2
-      indices: {}
+      indices: []
       name: person
       options: []
       order: 1
     pet:
       comments: ''
+      constraints:
+        - deferrable: 1
+          expression: ''
+          fields: ''
+          match_type: ''
+          name: ''
+          on_delete: ''
+          on_update: ''
+          options: []
+          reference_fields: []
+          reference_table: ''
+          type: CHECK
+        - deferrable: 1
+          expression: ''
+          fields:
+            - pet_id
+            - person_id
+          match_type: ''
+          name: ''
+          on_delete: ''
+          on_update: ''
+          options: []
+          reference_fields: []
+          reference_table: ''
+          type: PRIMARY KEY
       fields:
         age:
+          comments: ''
           data_type: int
           default_value: ~
           extra: {}
@@ -100,6 +166,7 @@ schema:
           size:
             - 0
         name:
+          comments: ''
           data_type: varchar
           default_value: ~
           extra: {}
@@ -111,6 +178,7 @@ schema:
           size:
             - 30
         person_id:
+          comments: ''
           data_type: int
           default_value: ~
           extra: {}
@@ -122,6 +190,7 @@ schema:
           size:
             - 0
         pet_id:
+          comments: ''
           data_type: int
           default_value: ~
           extra: {}
@@ -132,7 +201,7 @@ schema:
           order: 7
           size:
             - 0
-      indices: {}
+      indices: []
       name: pet
       options: []
       order: 2
@@ -151,19 +220,34 @@ schema:
       perform_action_when: ~
   views:
     person_pet:
-      fields: ~
+      fields: ''
       name: person_pet
       order: 1
       sql: |
         select pr.person_id, pr.name as person_name, pt.name as pet_name
           from   person pr, pet pt
           where  person.person_id=pet.pet_id
-/;
+translator:
+  add_drop_table: 0
+  filename: ~
+  no_comments: 0
+  parser_args: {}
+  parser_type: SQL::Translator::Parser::SQLite
+  producer_args: {}
+  producer_type: SQL::Translator::Producer::YAML
+  show_warnings: 0
+  trace: 0
+  version: $sqlt_version
+YAML
 
-my $tr = SQL::Translator->new(
+my $file = "$Bin/data/sqlite/create.sql";
+open FH, "<$file" or die "Can't read '$file': $!\n";
+local $/;
+my $data = <FH>;
+my $tr   = SQL::Translator->new(
     parser   => 'SQLite',
     producer => 'YAML',
-    filename => "$Bin/data/sqlite/create.sql",
+    data     => $data,
 );
 
 my $out;