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 | |
13 | my $db = 'dbi:SQLite:db.db'; |
14 | my @connection = ($db, '', '', { 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 | upgrade_directory => $sql_dir, |
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, |
56 | upgrade_directory => $sql_dir, |
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; |
67 | $dm->prepare_upgrade('1.0', $version, ['1.0', $version]); |
68 | dies_ok { |
69 | $s->resultset('Foo')->create({ |
70 | bar => 'frew', |
71 | baz => 'frew', |
72 | }) |
73 | } 'schema not deployed'; |
74 | dies_ok { |
75 | $s->resultset('Foo')->create({ |
76 | bar => 'frew', |
77 | baz => 'frew', |
78 | }) |
79 | } 'schema not uppgrayyed'; |
80 | $dm->upgrade_single_step(['1.0', $version]); |
81 | lives_ok { |
82 | $s->resultset('Foo')->create({ |
83 | bar => 'frew', |
84 | baz => 'frew', |
85 | }) |
86 | } 'schema is deployed'; |
d50f2521 |
87 | } |
02d58ac0 |
88 | done_testing; |
d50f2521 |
89 | #vim: ts=2 sw=2 expandtab |