Release commit for 1.62
[dbsrgits/SQL-Translator.git] / t / 05bgep-re.t
index 495be5f..b2fc918 100644 (file)
@@ -2,23 +2,57 @@
 # vim: set ft=perl:
 #
 
-#BEGIN { print "0..0\n"; }
-
 use strict;
-use Data::Dumper;
+
+use File::Spec::Functions qw(catfile tmpdir);
+use File::Temp qw(tempfile);
+use FindBin qw($Bin);
 use SQL::Translator;
-use SQL::Translator::Parser::MySQL;
-use SQL::Translator::Producer::XML;
+use Test::More;
+use Test::SQL::Translator qw(maybe_plan);
+
+# This aggravates me; XML::Writer produces tons of warnings.
+local $SIG{__WARN__} = sub {
+    CORE::warn(@_)
+        unless $_[0] =~ m#XML/Writer#;
+};
+
+BEGIN {
+    maybe_plan(2,
+        'SQL::Translator::Parser::MySQL',
+        'SQL::Translator::Producer::XML::SQLFairy');
+}
+
+my @data = qw(data mysql BGEP-RE-create.sql);
+my $test_data = (-d "t")
+    ? catfile($Bin, @data)
+    : catfile($Bin, "t", @data);
 
-$SQL::Translator::DEBUG = 0;
+my $tr       =  SQL::Translator->new(
+    parser   => 'MySQL',
+    producer => 'XML-SQLFairy',
+    filename => $test_data
+);
+my $data = $tr->translate;
 
-my $tr = SQL::Translator->new(parser => "MySQL", producer => "XML");
+ok($data, "MySQL->XML-SQLFairy");
 
-my $datafile = "t/data/mysql/BGEP-RE-create.sql";
-my $data;
-open FH, $datafile or die "Can't open $datafile: $!";
-read(FH, $data, -s $datafile);
-close FH;
+SKIP: {
+    eval {
+        require XML::Parser;
+    };
+    if ($@) {
+        skip "Can't load XML::Parser" => 1;
+    }
 
+    # Can't get XML::Parser::parsestring to do Useful Things
+    my ($fh, $fname) = tempfile('sqlfXXXX',
+                                UNLINK => 1,
+                                SUFFIX => '.xml',
+                                DIR => tmpdir);
+    print $fh $data;
+    close $fh;
 
-print $tr->translate(\$data);
+    ok(XML::Parser->new->parsefile($fname),
+        "Successfully parsed output");
+}