X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fdeploy_methods%2Fsql_translator_deprecated.t;h=617b31cd7c49b0b66356563ff8b5e0a4cd4ece7b;hb=624e3018cef977b18efce156c40440aa50d26e09;hp=ee05f8943e461e1afcfe76a89c135e93a1ad7e56;hpb=02d58ac05dd4ccbe5fd4ff8a9cc58681ee1b74ee;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/t/deploy_methods/sql_translator_deprecated.t b/t/deploy_methods/sql_translator_deprecated.t index ee05f89..617b31c 100644 --- a/t/deploy_methods/sql_translator_deprecated.t +++ b/t/deploy_methods/sql_translator_deprecated.t @@ -1,4 +1,3 @@ - #!perl use Test::More; @@ -6,7 +5,89 @@ use Test::Exception; use lib 't/lib'; use DBICDHTest; -use DBICTest; -use_ok 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated'; +use aliased + 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated'; + +use File::Spec::Functions; + +my $dbh = DBI->connect('dbi:SQLite::memory:'); +my @connection = (sub { $dbh }, { ignore_version => 1 }); +my $sql_dir = 't/sql'; + +DBICDHTest::ready; + +VERSION1: { + use_ok 'DBICVersion_v1'; + my $s = DBICVersion::Schema->connect(@connection); + my $dm = Deprecated->new({ + schema => $s, + script_directory => $sql_dir, + databases => ['SQLite'], + sql_translator_args => { add_drop_table => 0 }, + }); + + ok( $dm, 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly' ); + + $dm->prepare_deploy; + + ok( + -f catfile(qw( t sql DBICVersion-Schema-1.0-SQLite.sql )), + '1.0 schema gets generated properly' + ); + + dies_ok { + $s->resultset('Foo')->create({ + bar => 'frew', + }) + } 'schema not deployed'; + $dm->deploy; + lives_ok { + $s->resultset('Foo')->create({ + bar => 'frew', + }) + } 'schema is deployed'; +} + +VERSION2: { + use_ok 'DBICVersion_v2'; + my $s = DBICVersion::Schema->connect(@connection); + my $dm = Deprecated->new({ + schema => $s, + script_directory => $sql_dir, + databases => ['SQLite'], + }); + + ok( + $dm, + 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly w/ version 2.0' + ); + $version = $s->schema_version; + $dm->prepare_deploy; + $dm->prepare_upgrade({ + from_version => '1.0', + to_version => $version, + version_set => ['1.0', $version] + }); + dies_ok { + $s->resultset('Foo')->create({ + bar => 'frew', + baz => 'frew', + }) + } 'schema not deployed'; + dies_ok { + $s->resultset('Foo')->create({ + bar => 'frew', + baz => 'frew', + }) + } 'schema not uppgrayyed'; + $dm->upgrade_single_step({ version_set => ['1.0', $version] }); + lives_ok { + $s->resultset('Foo')->create({ + bar => 'frew', + baz => 'frew', + }) + } 'schema is deployed'; +} done_testing; +#vim: ts=2 sw=2 expandtab