#=============================================================================
BEGIN {
- maybe_plan(15,
+ maybe_plan(14,
'XML::Writer',
'Test::Differences',
'SQL::Translator::Producer::XML::SQLFairy');
$ans = <<EOXML;
<schema name="" database="" xmlns="http://sqlfairy.sourceforge.net/sqlfairy.xml">
- <table name="Basic" order="1">
- <fields>
- <field name="id" data_type="integer" size="10" is_nullable="0" is_auto_increment="1" is_primary_key="1" is_foreign_key="0" order="1">
- <extra />
- <comments>comment on id field</comments>
- </field>
- <field name="title" data_type="varchar" size="100" is_nullable="0" default_value="hello" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="2">
- <extra />
- <comments></comments>
- </field>
- <field name="description" data_type="text" size="65535" is_nullable="1" default_value="" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="3">
- <extra />
- <comments></comments>
- </field>
- <field name="email" data_type="varchar" size="255" is_nullable="1" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="4">
- <extra />
- <comments></comments>
- </field>
- </fields>
- <indices>
- <index name="titleindex" type="NORMAL" fields="title" options="" />
- </indices>
- <constraints>
- <constraint name="" type="PRIMARY KEY" fields="id" reference_table="" reference_fields="" on_delete="" on_update="" match_type="" expression="" options="" deferrable="1" />
- <constraint name="" type="UNIQUE" fields="email" reference_table="" reference_fields="" on_delete="" on_update="" match_type="" expression="" options="" deferrable="1" />
- </constraints>
- </table>
+ <extra />
+ <tables>
+ <table name="Basic" order="1">
+ <extra />
+ <fields>
+ <field name="id" data_type="integer" size="10" is_nullable="0" is_auto_increment="1" is_primary_key="1" is_foreign_key="0" order="1">
+ <extra />
+ <comments>comment on id field</comments>
+ </field>
+ <field name="title" data_type="varchar" size="100" is_nullable="0" default_value="hello" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="2">
+ <extra />
+ <comments></comments>
+ </field>
+ <field name="description" data_type="text" size="65535" is_nullable="1" default_value="" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="3">
+ <extra />
+ <comments></comments>
+ </field>
+ <field name="email" data_type="varchar" size="255" is_nullable="1" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="4">
+ <extra />
+ <comments></comments>
+ </field>
+ </fields>
+ <indices>
+ <index name="titleindex" type="NORMAL" fields="title" options="">
+ <extra />
+ </index>
+ </indices>
+ <constraints>
+ <constraint name="" type="PRIMARY KEY" fields="id" reference_table="" reference_fields="" on_delete="" on_update="" match_type="" expression="" options="" deferrable="1">
+ <extra />
+ </constraint>
+ <constraint name="" type="UNIQUE" fields="email" reference_table="" reference_fields="" on_delete="" on_update="" match_type="" expression="" options="" deferrable="1">
+ <extra />
+ </constraint>
+ </constraints>
+ </table>
+ </tables>
+ <views></views>
+ <triggers></triggers>
+ <procedures></procedures>
</schema>
EOXML
from => "MySQL",
to => "XML-SQLFairy",
);
-lives_ok {$xml = $obj->translate($file);} "Translate (attrib_values=>1) ran";
+$xml = $obj->translate($file) or die $obj->error;
ok("$xml" ne "" ,"Produced something!");
print "XML:\n$xml" if DEBUG;
# Strip sqlf header with its variable date so we diff safely
$ans = <<EOXML;
<schema name="" database="" xmlns="http://sqlfairy.sourceforge.net/sqlfairy.xml">
- <view name="foo_view" fields="name,age" order="1">
- <sql>select name, age from person</sql>
- </view>
+ <extra />
+ <tables></tables>
+ <views>
+ <view name="foo_view" fields="name,age" order="1">
+ <sql>select name, age from person</sql>
+ <extra hello="world" />
+ </view>
+ </views>
+ <triggers></triggers>
+ <procedures></procedures>
</schema>
EOXML
name => $name,
sql => $sql,
fields => $fields,
+ extra => { hello => "world" },
schema => $s,
) or die $s->error;
$ans = <<EOXML;
<schema name="" database="" xmlns="http://sqlfairy.sourceforge.net/sqlfairy.xml">
- <trigger name="foo_trigger" database_event="insert" on_table="foo" perform_action_when="after" order="1">
- <action>update modified=timestamp();</action>
- </trigger>
+ <extra />
+ <tables></tables>
+ <views></views>
+ <triggers>
+ <trigger name="foo_trigger" database_event="insert" on_table="foo" perform_action_when="after" order="1">
+ <action>update modified=timestamp();</action>
+ <extra hello="world" />
+ </trigger>
+ </triggers>
+ <procedures></procedures>
</schema>
EOXML
database_event => $database_event,
on_table => $on_table,
action => $action,
+ extra => { hello => "world" },
) or die $s->error;
# As we have created a Schema we give translate a dummy string so that
$ans = <<EOXML;
<schema name="" database="" xmlns="http://sqlfairy.sourceforge.net/sqlfairy.xml">
- <procedure name="foo_proc" parameters="foo,bar" owner="Nomar" order="1">
- <sql>select foo from bar</sql>
- <comments>Go Sox!</comments>
- </procedure>
+ <extra />
+ <tables></tables>
+ <views></views>
+ <triggers></triggers>
+ <procedures>
+ <procedure name="foo_proc" parameters="foo,bar" owner="Nomar" order="1">
+ <sql>select foo from bar</sql>
+ <comments>Go Sox!</comments>
+ <extra hello="world" />
+ </procedure>
+ </procedures>
</schema>
EOXML
parameters => $parameters,
owner => $owner,
comments => $comments,
+ extra => { hello => "world" },
) or die $s->error;
# As we have created a Schema we give translate a dummy string so that
$ans = <<EOXML;
<schema name="" database="" xmlns="http://sqlfairy.sourceforge.net/sqlfairy.xml">
- <table name="Basic" order="2">
- <fields>
- <field name="foo" data_type="integer" size="10" is_nullable="1" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="5">
- <extra ZEROFILL="1" />
- <comments></comments>
- </field>
- </fields>
- <indices></indices>
- <constraints></constraints>
- </table>
+ <extra />
+ <tables>
+ <table name="Basic" order="2">
+ <extra />
+ <fields>
+ <field name="foo" data_type="integer" size="10" is_nullable="1" is_auto_increment="0" is_primary_key="0" is_foreign_key="0" order="5">
+ <extra ZEROFILL="1" />
+ <comments></comments>
+ </field>
+ </fields>
+ <indices></indices>
+ <constraints></constraints>
+ </table>
+ </tables>
+ <views></views>
+ <triggers></triggers>
+ <procedures></procedures>
</schema>
EOXML