Release commit for 1.62
[dbsrgits/SQL-Translator.git] / t / 05bgep-re.t
index 18bd3ff..b2fc918 100644 (file)
@@ -3,22 +3,56 @@
 #
 
 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 qw(parse);
+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;
+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;
+    }
 
-print "Data is ", length $data, " bytes\n";
-#print $data;
+    # 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;
 
-my $val = parse($tr, $data);
-print Dumper($val);
+    ok(XML::Parser->new->parsefile($fname),
+        "Successfully parsed output");
+}