change all the tests to use the new test schema namespace
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / 02-instantiation-no-ddl.t
CommitLineData
cc7c22d9 1#!perl
2
3use strict;
4use warnings;
5
6use lib 't/lib';
7use DBICDHTest;
8use DBIx::Class::DeploymentHandler;
9use aliased 'DBIx::Class::DeploymentHandler', 'DH';
10
11use File::Path 'remove_tree';
12use Test::More;
13use Test::Exception;
624e3018 14use DBI;
cc7c22d9 15
16DBICDHTest::ready;
f3b5161e 17
18my $dbh = DBICDHTest::dbh();
624e3018 19my @connection = (sub { $dbh }, { ignore_version => 1 });
cc7c22d9 20my $sql_dir = 't/sql';
21
22VERSION1: {
23 use_ok 'DBICVersion_v1';
60655857 24 my $s = DBICVersion::Schema1->connect(@connection);
25 $DBICVersion::Schema1::VERSION = 1;
cc7c22d9 26 ok($s, 'DBICVersion::Schema 1 instantiates correctly');
27 my $handler = DH->new({
28 ignore_ddl => 1,
29 script_directory => $sql_dir,
30 schema => $s,
38857f30 31 databases => [],
cc7c22d9 32 sql_translator_args => { add_drop_table => 0 },
33 });
34
35 ok($handler, 'DBIx::Class::DeploymentHandler w/1 instantiates correctly');
36
37 my $version = $s->schema_version;
5761fe02 38 $handler->prepare_install;
cc7c22d9 39
40 dies_ok {
41 $s->resultset('Foo')->create({
42 bar => 'frew',
43 })
44 } 'schema not deployed';
45 $handler->install;
46 dies_ok {
47 $handler->install;
48 } 'cannot install twice';
49 lives_ok {
50 $s->resultset('Foo')->create({
51 bar => 'frew',
52 })
53 } 'schema is deployed';
54}
55
56VERSION2: {
57 use_ok 'DBICVersion_v2';
60655857 58 my $s = DBICVersion::Schema2->connect(@connection);
59 $DBICVersion::Schema2::VERSION = 2;
cc7c22d9 60 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
61 my $handler = DH->new({
62 ignore_ddl => 1,
63 script_directory => $sql_dir,
64 schema => $s,
38857f30 65 databases => [],
cc7c22d9 66 });
67
68 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
69
70 my $version = $s->schema_version();
5761fe02 71 $handler->prepare_install;
60655857 72#$handler->prepare_upgrade({ from_version => 1, to_version => 2 });
cc7c22d9 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 $handler->upgrade;
86 lives_ok {
87 $s->resultset('Foo')->create({
88 bar => 'frew',
89 baz => 'frew',
90 })
91 } 'schema is deployed';
92}
93
94VERSION3: {
95 use_ok 'DBICVersion_v3';
60655857 96 my $s = DBICVersion::Schema3->connect(@connection);
97 $DBICVersion::Schema3::VERSION = 3;
cc7c22d9 98 ok($s, 'DBICVersion::Schema 3 instantiates correctly');
99 my $handler = DH->new({
100 ignore_ddl => 1,
101 script_directory => $sql_dir,
102 schema => $s,
38857f30 103 databases => [],
cc7c22d9 104 });
105
106 ok($handler, 'DBIx::Class::DeploymentHandler w/3 instantiates correctly');
107
108 my $version = $s->schema_version();
5761fe02 109 $handler->prepare_install;
cc7c22d9 110 dies_ok {
111 $s->resultset('Foo')->create({
112 bar => 'frew',
113 baz => 'frew',
114 biff => 'frew',
115 })
116 } 'schema not deployed';
117 $handler->upgrade;
118 lives_ok {
119 $s->resultset('Foo')->create({
120 bar => 'frew',
121 baz => 'frew',
122 biff => 'frew',
123 })
124 } 'schema is deployed';
125}
126
127DOWN2: {
128 use_ok 'DBICVersion_v4';
60655857 129 my $s = DBICVersion::Schema4->connect(@connection);
130 $DBICVersion::Schema4::VERSION = 2;
cc7c22d9 131 ok($s, 'DBICVersion::Schema 2 instantiates correctly');
132 my $handler = DH->new({
133 ignore_ddl => 1,
134 script_directory => $sql_dir,
135 schema => $s,
38857f30 136 databases => [],
cc7c22d9 137 });
138
139 ok($handler, 'DBIx::Class::DeploymentHandler w/2 instantiates correctly');
140
141 my $version = $s->schema_version();
142 lives_ok {
143 $s->resultset('Foo')->create({
144 bar => 'frew',
145 baz => 'frew',
cc7c22d9 146 })
147 } 'schema at version 3';
148 $handler->downgrade;
149 dies_ok {
150 $s->resultset('Foo')->create({
151 bar => 'frew',
152 baz => 'frew',
153 biff => 'frew',
154 })
155 } 'schema not at version 3';
156 lives_ok {
157 $s->resultset('Foo')->create({
158 bar => 'frew',
159 baz => 'frew',
160 })
161 } 'schema is at version 2';
2e3cccff 162
163 is $handler->version_storage->database_version => 2,
164 'database version is down to 2';
165
cc7c22d9 166}
167
168done_testing;