Commit | Line | Data |
02d58ac0 |
1 | #!perl |
2 | |
3 | use Test::More; |
2482377b |
4 | use Test::Fatal qw(lives_ok dies_ok); |
02d58ac0 |
5 | |
6 | use lib 't/lib'; |
7 | use DBICDHTest; |
d50f2521 |
8 | use aliased |
91557c90 |
9 | 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated'; |
d50f2521 |
10 | |
7b3d00f9 |
11 | use File::Spec::Functions qw(catfile splitdir); |
12 | use File::Temp 'tempdir'; |
d50f2521 |
13 | |
f3b5161e |
14 | my $dbh = DBICDHTest::dbh(); |
624e3018 |
15 | my @connection = (sub { $dbh }, { ignore_version => 1 }); |
7b3d00f9 |
16 | my $sql_dir = tempdir( CLEANUP => 1 ); |
d50f2521 |
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, |
91adde75 |
25 | script_directory => $sql_dir, |
d50f2521 |
26 | databases => ['SQLite'], |
02a7b8ac |
27 | sql_translator_args => { add_drop_table => 0 }, |
d50f2521 |
28 | }); |
29 | |
30 | ok( $dm, 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly' ); |
31 | |
91557c90 |
32 | $dm->prepare_deploy; |
d50f2521 |
33 | |
34 | ok( |
7b3d00f9 |
35 | -f catfile(splitdir($sql_dir), qw(DBICVersion-Schema-1.0-SQLite.sql )), |
d50f2521 |
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'; |
7d2a6974 |
44 | $dm->deploy; |
d50f2521 |
45 | lives_ok { |
46 | $s->resultset('Foo')->create({ |
47 | bar => 'frew', |
48 | }) |
49 | } 'schema is deployed'; |
50 | } |
51 | |
52 | VERSION2: { |
91557c90 |
53 | use_ok 'DBICVersion_v2'; |
54 | my $s = DBICVersion::Schema->connect(@connection); |
d50f2521 |
55 | my $dm = Deprecated->new({ |
56 | schema => $s, |
91adde75 |
57 | script_directory => $sql_dir, |
d50f2521 |
58 | databases => ['SQLite'], |
59 | }); |
60 | |
61 | ok( |
91557c90 |
62 | $dm, |
63 | 'DBIC::DH::DM::SQLT::Deprecated gets instantiated correctly w/ version 2.0' |
64 | ); |
02d58ac0 |
65 | |
91557c90 |
66 | $version = $s->schema_version; |
67 | $dm->prepare_deploy; |
be140a5f |
68 | $dm->prepare_upgrade({ |
624e3018 |
69 | from_version => '1.0', |
70 | to_version => $version, |
71 | version_set => ['1.0', $version] |
be140a5f |
72 | }); |
91557c90 |
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'; |
be140a5f |
85 | $dm->upgrade_single_step({ version_set => ['1.0', $version] }); |
91557c90 |
86 | lives_ok { |
87 | $s->resultset('Foo')->create({ |
88 | bar => 'frew', |
89 | baz => 'frew', |
90 | }) |
91 | } 'schema is deployed'; |
d50f2521 |
92 | } |
02d58ac0 |
93 | done_testing; |
d50f2521 |
94 | #vim: ts=2 sw=2 expandtab |