switch to Path::Class for fewer mistakes
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / sql_translator_protoschema_transform.t
CommitLineData
f9c6ab50 1#!perl
2
cbbd1b5f 3use strict;
4use warnings;
5
f9c6ab50 6use Test::More;
f9c6ab50 7
8use lib 't/lib';
9use DBICDHTest;
10use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
297e662f 11use Path::Class qw(dir file);
7b3d00f9 12use File::Temp qw(tempfile tempdir);
f9c6ab50 13
f3b5161e 14my $dbh = DBICDHTest::dbh();
624e3018 15my @connection = (sub { $dbh }, { ignore_version => 1 });
7b3d00f9 16my $sql_dir = tempdir( CLEANUP => 1 );
f9c6ab50 17
18VERSION1: {
19 use_ok 'DBICVersion_v1';
20 my $s = DBICVersion::Schema->connect(@connection);
21 my $dm = Translator->new({
22 schema => $s,
23 script_directory => $sql_dir,
24 databases => ['SQLite'],
25 sql_translator_args => { add_drop_table => 0 },
26 });
27
28 $dm->prepare_deploy;
29 $dm->deploy;
30}
31
32VERSION2: {
33 use_ok 'DBICVersion_v2';
34 my $s = DBICVersion::Schema->connect(@connection);
35 my $dm = Translator->new({
36 schema => $s,
37 script_directory => $sql_dir,
38 databases => ['SQLite'],
39 sql_translator_args => { add_drop_table => 0 },
40 txn_wrap => 1,
41 });
42
f9c6ab50 43 $dm->prepare_deploy;
297e662f 44 dir($sql_dir, qw(_preprocess_schema upgrade 1.0-2.0 ))->mkpath;
f9c6ab50 45 open my $prerun, '>',
297e662f 46 file($sql_dir, qw(_preprocess_schema upgrade 1.0-2.0 003-semiautomatic.pl ));
2dfc27ba 47 my (undef, $fn) = tempfile(OPEN => 0);
f9c6ab50 48 print {$prerun}
2dfc27ba 49 qq^sub {
50 open my \$fh, ">", '$fn'
51 if \$_[0]->isa("SQL::Translator::Schema")
52 && \$_[1]->isa("SQL::Translator::Schema");
53 }^;
f9c6ab50 54 close $prerun;
55 $dm->prepare_upgrade({
56 from_version => '1.0',
57 to_version => '2.0',
58 version_set => [qw(1.0 2.0)]
59 });
2dfc27ba 60 ok -e $fn, 'intermediate script ran with the right args';
f9c6ab50 61 $dm->upgrade_single_step({ version_set => [qw( 1.0 2.0 )] });
62}
63done_testing;
64#vim: ts=2 sw=2 expandtab