X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F05bgep-re.t;h=db38576ed32dbc74ae2dacc61fb1aaa6a175cb8d;hb=d1ca5a5cb007ddb2f361d314ae4c26ddd4308aa4;hp=a7b9f1365b68c6a00f760836e37f39d85ea88177;hpb=046f18e5498f3d690e7857d8f97fa54e17da2356;p=dbsrgits%2FSQL-Translator.git diff --git a/t/05bgep-re.t b/t/05bgep-re.t index a7b9f13..db38576 100644 --- a/t/05bgep-re.t +++ b/t/05bgep-re.t @@ -2,23 +2,57 @@ # vim: set ft=perl: # -BEGIN { print "1..1\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"); +}