X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F30sqlt-diff.t;h=957f89faa4684cf7933d0d0ac96e85826b97d307;hb=949968a8966e2c3ca179b148ee9e86918c15a476;hp=ae78dc9bc0c63de96ba57e2fe92356276a7d83b4;hpb=32d8b258a2904e099d68272a386546333c3f7152;p=dbsrgits%2FSQL-Translator.git diff --git a/t/30sqlt-diff.t b/t/30sqlt-diff.t index ae78dc9..957f89f 100644 --- a/t/30sqlt-diff.t +++ b/t/30sqlt-diff.t @@ -8,43 +8,35 @@ use FindBin qw($Bin); use Test::More; use Test::SQL::Translator qw(maybe_plan); -my @script = qw(blib script sqlt-diff); +my @script = qw(script sqlt-diff-old); my @create1 = qw(data sqlite create.sql); my @create2 = qw(data sqlite create2.sql); -my $sqlt_diff = (-d "blib") - ? catfile($Bin, updir, @script) - : catfile($Bin, @script); - -my $create1 = (-d "t") - ? catfile($Bin, @create1) - : catfile($Bin, "t", @create1); - -my $create2 = (-d "t") - ? catfile($Bin, @create2) - : catfile($Bin, "t", @create2); +my $sqlt_diff = catfile($Bin, updir, @script); +my $create1 = catfile($Bin, @create1); +my $create2 = catfile($Bin, @create2); BEGIN { - maybe_plan(16, + maybe_plan(21, 'SQL::Translator::Parser::SQLite', 'SQL::Translator::Parser::MySQL', 'SQL::Translator::Parser::Oracle', ); } -ok(-e $sqlt_diff, 'Found sqlt-diff script'); -my @cmd = ($sqlt_diff, "$create1=SQLite", "$create2=SQLite"); - +ok(-e $sqlt_diff, 'Found sqlt-diff script'); +my @cmd = ($^X, $sqlt_diff, "$create1=SQLite", "$create2=SQLite"); my $out = `@cmd`; +like($out, qr/-- Target database SQLite is untested/, "Detected 'untested' comment"); like($out, qr/ALTER TABLE person CHANGE iq/, "Detected altered 'iq' field"); -like($out, qr/ALTER TABLE person ADD is_rock_star/, +like($out, qr/ALTER TABLE person ADD is_rock_star/, "Detected missing rock star field"); - -@cmd = ($sqlt_diff, "$create1=SQLite", "$create1=SQLite"); + +@cmd = ($^X, $sqlt_diff, "$create1=SQLite", "$create1=SQLite"); $out = `@cmd`; -like($out, qr/No differences found/, "Properly detected no differences"); +like($out, qr/There were no differences/, "Properly detected no differences"); my @mysql_create1 = qw(data mysql create.sql); my @mysql_create2 = qw(data mysql create2.sql); @@ -57,28 +49,34 @@ my $mysql_create2 = (-d "t") ? catfile($Bin, @mysql_create2) : catfile($Bin, "t", @mysql_create2); -@cmd = ($sqlt_diff, "$mysql_create1=MySQL", "$mysql_create2=MySQL"); +# Test for differences +@cmd = ($^X, $sqlt_diff, "$mysql_create1=MySQL", "$mysql_create2=MySQL"); $out = `@cmd`; +unlike($out, qr/-- Target database MySQL is untested/, "Did not detect 'untested' comment"); like($out, qr/ALTER TABLE person CHANGE person_id/, "Detected altered 'person_id' field"); like($out, qr/ALTER TABLE person CHANGE iq/, "Detected altered 'iq' field"); like($out, qr/ALTER TABLE person CHANGE name/, "Detected altered 'name' field"); like($out, qr/ALTER TABLE person CHANGE age/, "Detected altered 'age' field"); -like($out, qr/ALTER TABLE person ADD is_rock_star/, +like($out, qr/ALTER TABLE person ADD is_rock_star/, "Detected missing rock star field"); -like($out, qr/ALTER TABLE person ADD UNIQUE UC_person_id/, +like($out, qr/ALTER TABLE person ADD UNIQUE UC_person_id/, "Detected missing unique constraint"); -like($out, qr/ALTER TABLE person ENGINE=InnoDB;/, +like($out, qr/CREATE UNIQUE INDEX unique_name/, + "Detected unique index with different name"); +like($out, qr/ALTER TABLE person ENGINE=InnoDB;/, "Detected altered table option"); -like($out, qr/ALTER TABLE employee DROP FOREIGN KEY/, +like($out, qr/ALTER TABLE employee DROP FOREIGN KEY FK5302D47D93FE702E/, "Detected drop foreign key"); -like($out, qr/ALTER TABLE employee ADD CONSTRAINT/, +like($out, qr/ALTER TABLE employee ADD CONSTRAINT FK5302D47D93FE702E_diff/, "Detected add constraint"); - -@cmd = ($sqlt_diff, "$mysql_create1=MySQL", "$mysql_create1=MySQL"); +unlike($out, qr/ALTER TABLE employee ADD PRIMARY KEY/, "Primary key looks different when it shouldn't"); + +# Test for sameness +@cmd = ($^X, $sqlt_diff, "$mysql_create1=MySQL", "$mysql_create1=MySQL"); $out = `@cmd`; -like($out, qr/No differences found/, "Properly detected no differences"); +like($out, qr/There were no differences/, "Properly detected no differences"); my @oracle_create1 = qw(data oracle create.sql); my @oracle_create2 = qw(data oracle create2.sql); @@ -91,10 +89,11 @@ my $oracle_create2 = (-d "t") ? catfile($Bin, @oracle_create2) : catfile($Bin, "t", @oracle_create2); -@cmd = ($sqlt_diff, "$oracle_create1=Oracle", "$oracle_create2=Oracle"); +@cmd = ($^X, $sqlt_diff, "$oracle_create1=Oracle", "$oracle_create2=Oracle"); $out = `@cmd`; -like($out, qr/ALTER TABLE TABLE1 DROP FOREIGN KEY/, +unlike($out, qr/-- Target database Oracle is untested/, "Did not detect 'untested' comment"); +like($out, qr/ALTER TABLE TABLE1 DROP FOREIGN KEY/, "Detected drop foreign key"); -like($out, qr/ALTER TABLE TABLE1 ADD CONSTRAINT/, +like($out, qr/ALTER TABLE TABLE1 ADD CONSTRAINT/, "Detected add constraint");