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