X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F17sqlfxml-producer.t;h=85042ce97f7aeaa921f651d13c03bf26b1daf903;hb=HEAD;hp=54003c4b1700716752fa61afb4904cbdc0120ab7;hpb=0eebe05938c1a9ec8533d5ac9502743c0b43550b;p=dbsrgits%2FSQL-Translator.git
diff --git a/t/17sqlfxml-producer.t b/t/17sqlfxml-producer.t
index 54003c4..85042ce 100644
--- a/t/17sqlfxml-producer.t
+++ b/t/17sqlfxml-producer.t
@@ -23,7 +23,7 @@ my $file = "$Bin/data/mysql/sqlfxml-producer-basic.sql";
local $SIG{__WARN__} = sub {
CORE::warn(@_)
- unless $_[0] =~ m#XML/Writer#;
+ unless $_[0] =~ m!XML/Writer!;
};
# Testing 1,2,3,4...
@@ -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, { context => 1 };
+}
+
#
# basic stuff
#
@@ -83,6 +94,7 @@ $ans = <
+
@@ -104,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
@@ -156,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
#
@@ -170,10 +182,18 @@ my ($obj,$ans,$xml);
$ans = <
-
+
+
+
-
+
update modified=timestamp();
@@ -194,14 +214,15 @@ EOXML
my $name = 'foo_trigger';
my $perform_action_when = 'after';
my $database_event = 'insert';
- my $on_table = 'foo';
my $action = 'update modified=timestamp();';
+ my $table = $s->add_table( name => "Basic" ) or die $s->error;
my $t = $s->add_trigger(
name => $name,
perform_action_when => $perform_action_when,
- database_event => $database_event,
- on_table => $on_table,
+ database_events => [$database_event],
+ table => $table,
action => $action,
+ scope => 'row',
extra => { hello => "world" },
) or die $s->error;
@@ -211,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
#
@@ -267,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
#
@@ -281,16 +302,25 @@ $ans = <
-
+
@@ -316,6 +346,18 @@ EOXML
) or die $t->error;
$f->extra(ZEROFILL => "1");
+ $t->add_field(
+ name => "bar",
+ data_type => "numeric",
+ size => "10,2",
+ ) or die $t->error;
+ $t->add_field(
+ name => "baz",
+ data_type => "decimal",
+ size => [8,3],
+ ) or die $t->error;
+
+
# As we have created a Schema we give translate a dummy string so that
# it will run the produce.
lives_ok {$xml =$obj->translate("FOO");} "Translate (Field.extra) ran";
@@ -323,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