Test suite now is fully parallelizable
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / deploy_methods / sql_translator_deprecated.t
1 #!perl
2
3 use Test::More;
4 use Test::Exception;
5
6 use lib 't/lib';
7 use DBICDHTest;
8 use aliased
9    'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated';
10
11 use File::Spec::Functions qw(catfile splitdir);
12 use File::Temp 'tempdir';
13
14 my $dbh = DBICDHTest::dbh();
15 my @connection = (sub { $dbh }, { ignore_version => 1 });
16 my $sql_dir = tempdir( CLEANUP => 1 );
17
18 DBICDHTest::ready;
19
20 VERSION1: {
21    use_ok 'DBICVersion_v1';
22    my $s = DBICVersion::Schema->connect(@connection);
23    my $dm = Deprecated->new({
24       schema            => $s,
25       script_directory => $sql_dir,
26       databases         => ['SQLite'],
27       sql_translator_args          => { add_drop_table => 0 },
28    });
29
30    ok( $dm, 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly' );
31
32    $dm->prepare_deploy;
33
34    ok(
35       -f catfile(splitdir($sql_dir), qw(DBICVersion-Schema-1.0-SQLite.sql )),
36       '1.0 schema gets generated properly'
37    );
38
39    dies_ok {
40       $s->resultset('Foo')->create({
41          bar => 'frew',
42       })
43    } 'schema not deployed';
44    $dm->deploy;
45    lives_ok {
46       $s->resultset('Foo')->create({
47          bar => 'frew',
48       })
49    } 'schema is deployed';
50 }
51
52 VERSION2: {
53    use_ok 'DBICVersion_v2';
54    my $s = DBICVersion::Schema->connect(@connection);
55    my $dm = Deprecated->new({
56       schema            => $s,
57       script_directory => $sql_dir,
58       databases         => ['SQLite'],
59    });
60
61    ok(
62       $dm,
63       'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly w/ version 2.0'
64    );
65
66    $version = $s->schema_version;
67    $dm->prepare_deploy;
68    $dm->prepare_upgrade({
69      from_version => '1.0',
70      to_version => $version,
71      version_set => ['1.0', $version]
72    });
73    dies_ok {
74       $s->resultset('Foo')->create({
75          bar => 'frew',
76          baz => 'frew',
77       })
78    } 'schema not deployed';
79    dies_ok {
80       $s->resultset('Foo')->create({
81          bar => 'frew',
82          baz => 'frew',
83       })
84    } 'schema not uppgrayyed';
85    $dm->upgrade_single_step({ version_set => ['1.0', $version] });
86    lives_ok {
87       $s->resultset('Foo')->create({
88          bar => 'frew',
89          baz => 'frew',
90       })
91    } 'schema is deployed';
92 }
93 done_testing;
94 #vim: ts=2 sw=2 expandtab