Checking for field comments now.
[dbsrgits/SQL-Translator.git] / t / 17sqlfxml-producer.t
index 64c90c7..db14a10 100644 (file)
@@ -4,12 +4,14 @@
 # Before `make install' is performed this script should be runnable with
 # `make test'. After `make install' it should work as `perl test.pl'
 
+local $^W = 0;
+
 use strict;
 use Test::More;
 use Test::Exception;
 
 use Data::Dumper;
-our %opt;
+my %opt;
 BEGIN { map { $opt{$_}=1 if s/^-// } @ARGV; }
 use constant DEBUG => (exists $opt{d} ? 1 : 0);
 use constant TRACE => (exists $opt{t} ? 1 : 0);
@@ -24,7 +26,7 @@ my $file = "$Bin/data/mysql/sqlfxml-producer-basic.sql";
 
 eval { require XML::Writer; };
 if ($@ && $@ =~ m!locate XML::Writer.pm in!) {
-    plan skip_all => "You need XML::Writer to use SqlfXML.";
+    plan skip_all => "You need XML::Writer to use XML::SQLFairy.";
 }
 eval { require Test::Differences; };
 if ($@ && $@ =~ m!locate Test/Differences.pm in!) {
@@ -34,7 +36,7 @@ use Test::Differences;
 plan tests => 6;
     
 use SQL::Translator;
-use SQL::Translator::Producer::SqlfXML;
+use SQL::Translator::Producer::XML::SQLFairy;
 
 my ($obj,$ans,$xml);
 
@@ -57,6 +59,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>1</sqlt:order>
         <sqlt:size>10</sqlt:size>
+        <sqlt:comments>comment on id field</sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>title</sqlt:name>
@@ -68,6 +71,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>2</sqlt:order>
         <sqlt:size>100</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>description</sqlt:name>
@@ -78,7 +82,8 @@ $ans = <<EOXML;
         <sqlt:is_nullable>1</sqlt:is_nullable>
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>3</sqlt:order>
-        <sqlt:size>0</sqlt:size>
+        <sqlt:size>65535</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>email</sqlt:name>
@@ -89,6 +94,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>4</sqlt:order>
         <sqlt:size>255</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
     </sqlt:fields>
     <sqlt:indices>
@@ -134,8 +140,8 @@ $obj = SQL::Translator->new(
     trace          => TRACE,
     show_warnings  => 1,
     add_drop_table => 1,
-    from           => "MySQL",
-    to             => "SqlfXML",
+    from           => 'MySQL',
+    to             => 'XML-SQLFairy',
 );
 lives_ok { $xml = $obj->translate($file); }  "Translate ran";
 ok("$xml" ne ""                             ,"Produced something!");
@@ -164,6 +170,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>5</sqlt:order>
         <sqlt:size>10</sqlt:size>
+        <sqlt:comments>comment on id field</sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>title</sqlt:name>
@@ -175,6 +182,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>6</sqlt:order>
         <sqlt:size>100</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>description</sqlt:name>
@@ -185,7 +193,8 @@ $ans = <<EOXML;
         <sqlt:is_nullable>1</sqlt:is_nullable>
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>7</sqlt:order>
-        <sqlt:size>0</sqlt:size>
+        <sqlt:size>65535</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
       <sqlt:field>
         <sqlt:name>email</sqlt:name>
@@ -197,6 +206,7 @@ $ans = <<EOXML;
         <sqlt:is_foreign_key>0</sqlt:is_foreign_key>
         <sqlt:order>8</sqlt:order>
         <sqlt:size>255</sqlt:size>
+        <sqlt:comments></sqlt:comments>
       </sqlt:field>
     </sqlt:fields>
     <sqlt:indices>
@@ -245,8 +255,8 @@ $obj = SQL::Translator->new(
     trace          => TRACE,
     show_warnings  => 1,
     add_drop_table => 1,
-    from           => "MySQL",
-    to             => "SqlfXML",
+    from           => 'MySQL',
+    to             => 'XML-SQLFairy',
     producer_args  => { emit_empty_tags => 1 },
 );
 lives_ok { $xml = $obj->translate($file); }  "Translate ran";
@@ -258,14 +268,14 @@ eq_or_diff $xml, $ans                       ,"XML looks right";
     # This diff probably isn't a very good test! Should really check the
     # result with XPath or something, but that would take ages to write ;-)
 
-#print "Debug:", Dumper($obj) if DEBUG;
-$obj = SQL::Translator->new(
-    debug          => DEBUG,
-    trace          => TRACE,
-    show_warnings  => 1,
-    add_drop_table => 1,
-    from           => "MySQL",
-    to             => "SqlfXML",
-    producer_args  => { emit_empty_tags => 0 },
-);
-print $obj->translate("/home/grommit/src/NADS-build/sql/document.mysql.sql");
+# TODO Make this a real test of attrib_values
+# $obj = SQL::Translator->new(
+#     debug          => DEBUG,
+#     trace          => TRACE,
+#     show_warnings  => 1,
+#     add_drop_table => 1,
+#     from           => "MySQL",
+#     to             => "XML-SQLFairy",
+#     producer_args  => { attrib_values => 1 },
+# );
+# print $obj->translate($file);