X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F05bgep-re.t;h=1c55bc456a18c885cf4cc5dd1f3878d6c0214e77;hb=2d691ec135298f8a4523656dc0516dcb7af3e8cd;hp=8efb0d68cd167d23c419554ac744cdc3d324f2ff;hpb=dd2ef5ae9a4f343e7abd89a4d5f05173c3f8ea1f;p=dbsrgits%2FSQL-Translator.git diff --git a/t/05bgep-re.t b/t/05bgep-re.t index 8efb0d6..1c55bc4 100644 --- a/t/05bgep-re.t +++ b/t/05bgep-re.t @@ -2,25 +2,57 @@ # vim: set ft=perl: # -BEGIN { print "1..1\n"; } - use strict; -use Data::Dumper; -use SQL::Translator; -use SQL::Translator::Parser::MySQL; -use SQL::Translator::Producer::XML; - -$SQL::Translator::DEBUG = 0; - -my $tr = SQL::Translator->new(parser => "MySQL", producer => "XML"); - -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; - - -print $tr->translate(\$data); -print "ok 1\n"; +use File::Spec::Functions qw(catfile tmpdir); +use File::Temp qw(tempfile); +use FindBin qw($Bin); +use SQL::Translator; +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); + +my $tr = SQL::Translator->new( + parser => 'MySQL', + producer => 'XML-SQLFairy', + filename => $test_data +); +my $data = $tr->translate; + +ok($data, "MySQL->XML-SQLFairy"); + +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; + $fh->close; + + ok(XML::Parser->new->parsefile($fname), + "Successfully parsed output"); +}