Warn-free test suite with later DBIC
[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;
12
13 my $dbh = DBICDHTest::dbh();
14 my @connection = (sub { $dbh }, { ignore_version => 1 });
15 my $sql_dir = 't/sql';
16
17 DBICDHTest::ready;
18
19 VERSION1: {
20    use_ok 'DBICVersion_v1';
21    my $s = DBICVersion::Schema->connect(@connection);
22    my $dm = Deprecated->new({
23       schema            => $s,
24       script_directory => $sql_dir,
25       databases         => ['SQLite'],
26       sql_translator_args          => { add_drop_table => 0 },
27    });
28
29    ok( $dm, 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly' );
30
31    $dm->prepare_deploy;
32
33    ok(
34       -f catfile(qw( t sql DBICVersion-Schema-1.0-SQLite.sql )),
35       '1.0 schema gets generated properly'
36    );
37
38    dies_ok {
39       $s->resultset('Foo')->create({
40          bar => 'frew',
41       })
42    } 'schema not deployed';
43    $dm->deploy;
44    lives_ok {
45       $s->resultset('Foo')->create({
46          bar => 'frew',
47       })
48    } 'schema is deployed';
49 }
50
51 VERSION2: {
52    use_ok 'DBICVersion_v2';
53    my $s = DBICVersion::Schema->connect(@connection);
54    my $dm = Deprecated->new({
55       schema            => $s,
56       script_directory => $sql_dir,
57       databases         => ['SQLite'],
58    });
59
60    ok(
61       $dm,
62       'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly w/ version 2.0'
63    );
64
65    $version = $s->schema_version;
66    $dm->prepare_deploy;
67    $dm->prepare_upgrade({
68      from_version => '1.0',
69      to_version => $version,
70      version_set => ['1.0', $version]
71    });
72    dies_ok {
73       $s->resultset('Foo')->create({
74          bar => 'frew',
75          baz => 'frew',
76       })
77    } 'schema not deployed';
78    dies_ok {
79       $s->resultset('Foo')->create({
80          bar => 'frew',
81          baz => 'frew',
82       })
83    } 'schema not uppgrayyed';
84    $dm->upgrade_single_step({ version_set => ['1.0', $version] });
85    lives_ok {
86       $s->resultset('Foo')->create({
87          bar => 'frew',
88          baz => 'frew',
89       })
90    } 'schema is deployed';
91 }
92 done_testing;
93 #vim: ts=2 sw=2 expandtab