Add transforms for column renames etc
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / sql_translator_protoschema_transform.t
diff --git a/t/deploy_methods/sql_translator_protoschema_transform.t b/t/deploy_methods/sql_translator_protoschema_transform.t
new file mode 100644 (file)
index 0000000..d697b3c
--- /dev/null
@@ -0,0 +1,65 @@
+#!perl
+
+use Test::More;
+use Test::Exception;
+
+use lib 't/lib';
+use DBICDHTest;
+use aliased 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator';
+use File::Spec::Functions;
+use File::Path qw(rmtree mkpath);
+
+my $db = 'dbi:SQLite:db.db';
+my @connection = ($db, '', '', { ignore_version => 1 });
+my $sql_dir = 't/sql';
+
+DBICDHTest::ready;
+
+VERSION1: {
+   use_ok 'DBICVersion_v1';
+   my $s = DBICVersion::Schema->connect(@connection);
+   my $dm = Translator->new({
+      schema            => $s,
+      script_directory => $sql_dir,
+      databases         => ['SQLite'],
+      sql_translator_args          => { add_drop_table => 0 },
+   });
+
+   $dm->prepare_deploy;
+   $dm->deploy;
+}
+
+VERSION2: {
+   use_ok 'DBICVersion_v2';
+   my $s = DBICVersion::Schema->connect(@connection);
+   my $dm = Translator->new({
+      schema            => $s,
+      script_directory => $sql_dir,
+      databases         => ['SQLite'],
+      sql_translator_args          => { add_drop_table => 0 },
+      txn_wrap          => 1,
+   });
+
+   $version = $s->schema_version();
+   $dm->prepare_deploy;
+   mkpath(catfile(qw( t sql _protoschema up 1.0-2.0 )));
+   open my $prerun, '>',
+      catfile(qw( t sql _protoschema up 1.0-2.0 003-semiautomatic.pl ));
+   print {$prerun}
+      'sub {
+         use File::Touch;
+         touch(q(robotparty))
+            if $_[0]->isa("SQL::Translator::Schema")
+            && $_[1]->isa("SQL::Translator::Schema");
+      }';
+   close $prerun;
+   $dm->prepare_upgrade({
+     from_version => '1.0',
+     to_version => '2.0',
+     version_set => [qw(1.0 2.0)]
+   });
+   ok -e 'robotparty', 'intermediate script ran with the right args';
+   $dm->upgrade_single_step({ version_set => [qw( 1.0 2.0 )] });
+}
+done_testing;
+#vim: ts=2 sw=2 expandtab