X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F05bgep-re.t;h=1c55bc456a18c885cf4cc5dd1f3878d6c0214e77;hb=54360ac93d5401fdc5c84054eec5324bc2f35bfa;hp=495be5f81d520149e64c4d7e2b9a6a1f1daa91f8;hpb=8c1f4165cd668d67ea9a0f04048223ca946815fa;p=dbsrgits%2FSQL-Translator.git diff --git a/t/05bgep-re.t b/t/05bgep-re.t index 495be5f..1c55bc4 100644 --- a/t/05bgep-re.t +++ b/t/05bgep-re.t @@ -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; + $fh->close; -print $tr->translate(\$data); + ok(XML::Parser->new->parsefile($fname), + "Successfully parsed output"); +}