X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fversion_storages%2Fstandard.t;h=cc1681dd023be782ba5b59417e15ed95d2178694;hb=refs%2Fheads%2Fmigration_schema;hp=aa357cee9dd5a1a7bb92e8f27040357064183b69;hpb=c37d8797bda3a6671bacde6f9a931cfdb401a4ad;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/t/version_storages/standard.t b/t/version_storages/standard.t index aa357ce..cc1681d 100644 --- a/t/version_storages/standard.t +++ b/t/version_storages/standard.t @@ -1,93 +1,89 @@ #!perl +use strict; +use warnings; + use Test::More; -use Test::Deep; use Test::Exception; use lib 't/lib'; use DBICDHTest; -use DBICTest; use aliased 'DBIx::Class::DeploymentHandler::VersionStorage::Standard'; +use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator'; use DBICVersion_v1; use DBIx::Class::DeploymentHandler; -my $db = 'dbi:SQLite:db.db'; -my @connection = ($db, '', '', { ignore_version => 1 }); +my $dbh = DBICDHTest::dbh(); +my @connection = (sub { $dbh }, { ignore_version => 1 }); my $sql_dir = 't/sql'; -my $s = DBICVersion::Schema->connect(@connection); +my $s = DBICVersion::Schema1->connect(@connection); { - my $warning; - local $SIG{__WARN__} = sub {$warning = shift}; - my $t = DBICVersion::Schema->connect('frewfrew', '', ''); - like( $warning, qr/Your DB is currently unversioned. Please call upgrade on your schema to sync the DB/, 'warning when database is unversioned'); + my $warning; + local $SIG{__WARN__} = sub {$warning = shift}; + my $t = DBICVersion::Schema1->connect('frewfrew', '', ''); + like( $warning, qr/Your DB is currently unversioned. Please call upgrade on your schema to sync the DB/, 'warning when database is unversioned'); } DBICDHTest::ready; -my $handler = DBIx::Class::DeploymentHandler->new({ - upgrade_directory => $sql_dir, - schema => $s, - databases => 'SQLite', - sqltargs => { add_drop_table => 0 }, +my $dm = Translator->new({ + schema => $s, + script_directory => $sql_dir, + databases => ['SQLite'], + sql_translator_args => { add_drop_table => 0 }, }); -$handler->prepare_install(); - my $vs = Standard->new({ schema => $s }); +$dm->prepare_resultsource_install({ + result_source => $vs->version_rs->result_source +}); + ok( $vs, 'DBIC::DH::VersionStorage::Standard instantiates correctly' ); ok( !$vs->version_storage_is_installed, 'VersionStorage is not yet installed' ); -$handler->install(); +$dm->install_resultsource({ + result_source => $vs->version_rs->result_source, + version => '1.0', +}); ok( $vs->version_storage_is_installed, 'VersionStorage is now installed' ); -cmp_deeply( - [ map +{ - version => $_->version, - ddl => $_->ddl, - upgrade_sql => $_->upgrade_sql, - }, $vs->version_rs->search(undef, {order_by => 'id'})->all], - [{ - version => '1.0', - ddl => undef, - upgrade_sql => undef - }], - 'initial version works correctly' +$vs->add_database_version({ + version => '1.0', +}); + +ok( + eq_array( + [ $vs->version_rs->search(undef, {order_by => 'id'})->get_column('version')->all], + [ '1.0' ], + ), + 'initial version works correctly' ); is( $vs->database_version, '1.0', 'database version is 1.0'); $vs->add_database_version({ - version => '2.0', + version => '2.0', }); is( $vs->database_version, '2.0', 'database version is 2.0'); -cmp_deeply( - [ map +{ - version => $_->version, - ddl => $_->ddl, - upgrade_sql => $_->upgrade_sql, - }, $vs->version_rs->search(undef, {order_by => 'id'})->all], - [{ - version => '1.0', - ddl => undef, - upgrade_sql => undef - },{ - version => '2.0', - ddl => undef, - upgrade_sql => undef - }], - 'adding another version works correctly' +ok( + eq_array( + [ $vs->version_rs->search(undef, {order_by => 'id'})->get_column('version')->all], + [ '1.0', '2.0', ], + ), + 'adding another version works correctly' ); +my $u; { - my $warning; - local $SIG{__WARN__} = sub {$warning = shift}; - my $u = DBICVersion::Schema->connect($db, '', ''); - like( $warning, qr/Versions out of sync. This is 1.0, your database contains version 2.0, please call upgrade on your Schema./, 'warning when database/schema mismatch'); + my $warning; + local $SIG{__WARN__} = sub {$warning = shift}; + $u = DBICVersion::Schema1->connect(sub { $dbh }); + like( $warning, qr/Versions out of sync. This is 1\.0, your database contains version 2\.0, please call upgrade on your Schema\./, 'warning when database/schema mismatch'); }