X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F30sqlt-new-diff-mysql.t;h=9ed3108ee0b9214a99f73dd4d0c73d823bde9ce5;hb=d8cf2279bd5e25db979d6251c5648d69fc5a298d;hp=5a9997e968b60ecc4a6457073701c03f0de4fd08;hpb=24d9fe69f45176a383f9faf545211caa180ae118;p=dbsrgits%2FSQL-Translator.git diff --git a/t/30sqlt-new-diff-mysql.t b/t/30sqlt-new-diff-mysql.t index 5a9997e..9ed3108 100644 --- a/t/30sqlt-new-diff-mysql.t +++ b/t/30sqlt-new-diff-mysql.t @@ -13,11 +13,11 @@ use Test::SQL::Translator qw(maybe_plan); use SQL::Translator::Schema::Constants; use Storable 'dclone'; -plan tests => 8; +plan tests => 9; use_ok('SQL::Translator::Diff') or die "Cannot continue\n"; -my $tr = SQL::Translator->new; +my $tr = SQL::Translator->new; my ( $source_schema, $target_schema, $parsed_sql_schema ) = map { my $t = SQL::Translator->new; @@ -34,7 +34,19 @@ my ( $source_schema, $target_schema, $parsed_sql_schema ) = map { } (qw( create1.yml create2.yml )); # Test for differences -my $out = SQL::Translator::Diff::schema_diff( $source_schema, 'MySQL', $target_schema, 'MySQL', { no_batch_alters => 1, producer_options => { quote_table_names => 0 } } ); +my @out = SQL::Translator::Diff::schema_diff( + $source_schema, 'MySQL', + $target_schema, 'MySQL', + { + no_batch_alters => 1, + producer_args => { quote_table_names => 0 } + } +); + +ok( @out, 'Got a list' ); + +my $out = join('', @out); + eq_or_diff($out, <<'## END OF DIFF', "Diff as expected"); -- Convert schema 'create1.yml' to 'create2.yml':; @@ -60,15 +72,15 @@ ALTER TABLE employee DROP COLUMN job_title; ALTER TABLE new_name ADD COLUMN new_field integer; -ALTER TABLE person ADD COLUMN is_rock_star tinyint(4) DEFAULT '1'; +ALTER TABLE person ADD COLUMN is_rock_star tinyint(4) DEFAULT 1; ALTER TABLE person CHANGE COLUMN person_id person_id integer(11) NOT NULL auto_increment; ALTER TABLE person CHANGE COLUMN name name varchar(20) NOT NULL; -ALTER TABLE person CHANGE COLUMN age age integer(11) DEFAULT '18'; +ALTER TABLE person CHANGE COLUMN age age integer(11) DEFAULT 18; -ALTER TABLE person CHANGE COLUMN iq iq integer(11) DEFAULT '0'; +ALTER TABLE person CHANGE COLUMN iq iq integer(11) DEFAULT 0; ALTER TABLE person CHANGE COLUMN description physical_description text; @@ -94,7 +106,7 @@ COMMIT; $out = SQL::Translator::Diff::schema_diff($source_schema, 'MySQL', $target_schema, 'MySQL', { ignore_index_names => 1, ignore_constraint_names => 1, - producer_options => { quote_table_names => 0 }, + producer_args => { quote_table_names => 0 }, }); eq_or_diff($out, <<'## END OF DIFF', "Diff as expected"); @@ -116,11 +128,11 @@ ALTER TABLE old_name RENAME TO new_name, ADD COLUMN new_field integer; ALTER TABLE person DROP INDEX UC_age_name, - ADD COLUMN is_rock_star tinyint(4) DEFAULT '1', + ADD COLUMN is_rock_star tinyint(4) DEFAULT 1, CHANGE COLUMN person_id person_id integer(11) NOT NULL auto_increment, CHANGE COLUMN name name varchar(20) NOT NULL, - CHANGE COLUMN age age integer(11) DEFAULT '18', - CHANGE COLUMN iq iq integer(11) DEFAULT '0', + CHANGE COLUMN age age integer(11) DEFAULT 18, + CHANGE COLUMN iq iq integer(11) DEFAULT 0, CHANGE COLUMN description physical_description text, ADD UNIQUE UC_person_id (person_id), ADD UNIQUE UC_age_name (age, name), @@ -166,7 +178,7 @@ eq_or_diff($out, <<'## END OF DIFF', "No differences found"); my $field = $target_schema->get_table('employee')->get_field('employee_id'); $field->data_type('integer'); $field->size(0); - $out = SQL::Translator::Diff::schema_diff($schema, 'MySQL', $target_schema, 'MySQL', { producer_options => { quote_table_names => 0 } } ); + $out = SQL::Translator::Diff::schema_diff($schema, 'MySQL', $target_schema, 'MySQL', { producer_args => { quote_table_names => 0 } } ); eq_or_diff($out, <<'## END OF DIFF', "No differences found"); -- Convert schema 'create.sql' to 'create2.yml':; @@ -186,11 +198,11 @@ ALTER TABLE employee DROP FOREIGN KEY FK5302D47D93FE702E, ALTER TABLE person DROP INDEX UC_age_name, DROP INDEX u_name, - ADD COLUMN is_rock_star tinyint(4) DEFAULT '1', + ADD COLUMN is_rock_star tinyint(4) DEFAULT 1, CHANGE COLUMN person_id person_id integer(11) NOT NULL auto_increment, CHANGE COLUMN name name varchar(20) NOT NULL, - CHANGE COLUMN age age integer(11) DEFAULT '18', - CHANGE COLUMN iq iq integer(11) DEFAULT '0', + CHANGE COLUMN age age integer(11) DEFAULT 18, + CHANGE COLUMN iq iq integer(11) DEFAULT 0, CHANGE COLUMN description physical_description text, ADD UNIQUE INDEX unique_name (name), ADD UNIQUE UC_person_id (person_id), @@ -304,7 +316,7 @@ COMMIT; # Test quoting works too. $out = SQL::Translator::Diff::schema_diff($s1, 'MySQL', $s2, 'MySQL', - { producer_options => { quote_table_names => '`' } } + { producer_args => { quote_table_names => '`' } } ); eq_or_diff($out, <<'## END OF DIFF', "Quoting can be turned on"); -- Convert schema 'Schema 3' to 'Schema 4':;