Improve trigger 'scope' attribute support (RT#119997)
[dbsrgits/SQL-Translator.git] / t / 17sqlfxml-producer.t
index 5b9fa76..7989e35 100644 (file)
@@ -40,6 +40,17 @@ use Test::Differences;
 use SQL::Translator;
 use SQL::Translator::Producer::XML::SQLFairy;
 
+# Due to formatters being able to change style, e.g. by entries in .rc files
+# in $HOME, the layout and or indent might differ slightly. As leading white
+# is not important in XML, strip it when comparing
+sub xml_equals
+{
+    my ($got, $expect, $msg) = (@_, "XML looks right");
+    $got    =~ s/^ +//gm;
+    $expect =~ s/^ +//gm;
+    eq_or_diff $got, $expect, $msg;
+}
+
 #
 # basic stuff
 #
@@ -105,7 +116,7 @@ ok("$xml" ne ""                             ,"Produced something!");
 print "XML:\n$xml" if DEBUG;
 # Strip sqlf header with its variable date so we diff safely
 $xml =~ s/^([^\n]*\n){7}//m;
-eq_or_diff $xml, $ans, "XML looks right";
+xml_equals $xml, $ans;
 
 } # end basic stuff
 
@@ -157,8 +168,8 @@ EOXML
     ok("$xml" ne ""                             ,"Produced something!");
     print "XML attrib_values=>1:\n$xml" if DEBUG;
     # Strip sqlf header with its variable date so we diff safely
-    $xml =~ s/^([^\n]*\n){7}//m; 
-    eq_or_diff $xml, $ans                       ,"XML looks right";
+    $xml =~ s/^([^\n]*\n){7}//m;
+    xml_equals $xml, $ans;
 } # end View
 
 #
@@ -182,7 +193,7 @@ $ans = <<EOXML;
   </tables>
   <views></views>
   <triggers>
-    <trigger name="foo_trigger" database_events="insert" on_table="Basic" perform_action_when="after" order="1">
+    <trigger name="foo_trigger" database_events="insert" on_table="Basic" perform_action_when="after" order="1" scope="row">
       <action>update modified=timestamp();</action>
       <extra hello="world" />
     </trigger>
@@ -211,6 +222,7 @@ EOXML
         database_events     => [$database_event],
         table               => $table,
         action              => $action,
+        scope               => 'row',
         extra               => { hello => "world" },
     ) or die $s->error;
 
@@ -220,8 +232,8 @@ EOXML
     ok("$xml" ne ""                             ,"Produced something!");
     print "XML attrib_values=>1:\n$xml" if DEBUG;
     # Strip sqlf header with its variable date so we diff safely
-    $xml =~ s/^([^\n]*\n){7}//m; 
-    eq_or_diff $xml, $ans                       ,"XML looks right";
+    $xml =~ s/^([^\n]*\n){7}//m;
+    xml_equals $xml, $ans;
 } # end Trigger
 
 #
@@ -276,8 +288,8 @@ EOXML
     ok("$xml" ne ""                             ,"Produced something!");
     print "XML attrib_values=>1:\n$xml" if DEBUG;
     # Strip sqlf header with its variable date so we diff safely
-    $xml =~ s/^([^\n]*\n){7}//m; 
-    eq_or_diff $xml, $ans                       ,"XML looks right";
+    $xml =~ s/^([^\n]*\n){7}//m;
+    xml_equals $xml, $ans;
 } # end Procedure
 
 #
@@ -353,5 +365,5 @@ EOXML
     print "XML:\n$xml" if DEBUG;
     # Strip sqlf header with its variable date so we diff safely
     $xml =~ s/^([^\n]*\n){7}//m;
-    eq_or_diff $xml, $ans                       ,"XML looks right";
+    xml_equals $xml, $ans;
 } # end extra