Commit | Line | Data |
b974984a |
1 | #!perl |
2 | |
3 | use Test::More; |
239acef9 |
4 | use Test::Exception; |
b974984a |
5 | |
6 | use lib 't/lib'; |
7 | use DBICTest; |
8 | use DBIx::Class::DeploymentHandler; |
4ea147c6 |
9 | my $db = 'dbi:SQLite:db.db'; |
e0743c25 |
10 | my $sql_dir = 't/sql'; |
b974984a |
11 | |
e0743c25 |
12 | VERSION1: { |
13 | use_ok 'DBICVersion_v1'; |
4ea147c6 |
14 | my $s = DBICVersion::Schema->connect($db); |
e0743c25 |
15 | ok($s, 'DBICVersion::Schema 1.0 instantiates correctly'); |
16 | my $handler = DBIx::Class::DeploymentHandler->new({ |
4ea147c6 |
17 | upgrade_directory => $sql_dir, |
e0743c25 |
18 | schema => $s, |
19 | }); |
20 | |
21 | ok($handler, 'DBIx::Class::DeploymentHandler w/1.0 instantiates correctly'); |
22 | |
23 | my $version = $s->schema_version(); |
24 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, 0); |
25 | ok(-e 't/sql/DBICVersion-Schema-1.0-SQLite.sql', 'DDL for 1.0 got created successfully'); |
239acef9 |
26 | |
27 | dies_ok { |
28 | $s->resultset('Foo')->create({ |
29 | bar => 'frew', |
30 | }) |
31 | } 'schema not deployed'; |
32 | $handler->install; |
33 | lives_ok { |
34 | $s->resultset('Foo')->create({ |
35 | bar => 'frew', |
36 | }) |
37 | } 'schema is deployed'; |
e0743c25 |
38 | } |
39 | |
40 | VERSION2: { |
41 | use_ok 'DBICVersion_v2'; |
4ea147c6 |
42 | my $s = DBICVersion::Schema->connect($db); |
e0743c25 |
43 | ok($s, 'DBICVersion::Schema 2.0 instantiates correctly'); |
44 | my $handler = DBIx::Class::DeploymentHandler->new({ |
4ea147c6 |
45 | upgrade_directory => $sql_dir, |
e0743c25 |
46 | schema => $s, |
47 | }); |
48 | |
49 | ok($handler, 'DBIx::Class::DeploymentHandler w/2.0 instantiates correctly'); |
50 | |
51 | $version = $s->schema_version(); |
52 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, 0); |
53 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, '1.0'); |
54 | ok(-e 't/sql/DBICVersion-Schema-2.0-SQLite.sql', 'DDL for 2.0 got created successfully'); |
55 | ok(-e 't/sql/DBICVersion-Schema-1.0-2.0-SQLite.sql', 'DDL for migration from 1.0 to 2.0 got created successfully'); |
239acef9 |
56 | dies_ok { |
57 | $s->resultset('Foo')->create({ |
58 | bar => 'frew', |
59 | baz => 'frew', |
60 | }) |
61 | } 'schema not deployed'; |
4ea147c6 |
62 | #$handler->install('1.0'); |
63 | dies_ok { |
64 | $s->resultset('Foo')->create({ |
65 | bar => 'frew', |
66 | baz => 'frew', |
67 | }) |
68 | } 'schema not uppgrayyed'; |
69 | $handler->upgrade_single_step('1.0', '2.0'); |
239acef9 |
70 | lives_ok { |
71 | $s->resultset('Foo')->create({ |
72 | bar => 'frew', |
73 | baz => 'frew', |
74 | }) |
75 | } 'schema is deployed'; |
e0743c25 |
76 | } |
77 | |
78 | VERSION3: { |
79 | use_ok 'DBICVersion_v3'; |
4ea147c6 |
80 | my $s = DBICVersion::Schema->connect($db); |
e0743c25 |
81 | ok($s, 'DBICVersion::Schema 3.0 instantiates correctly'); |
82 | my $handler = DBIx::Class::DeploymentHandler->new({ |
4ea147c6 |
83 | upgrade_directory => $sql_dir, |
e0743c25 |
84 | schema => $s, |
85 | }); |
86 | |
87 | ok($handler, 'DBIx::Class::DeploymentHandler w/3.0 instantiates correctly'); |
88 | |
89 | $version = $s->schema_version(); |
90 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, 0); |
91 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, '1.0'); |
92 | $handler->create_ddl_dir( 'SQLite', $version, $sql_dir, '2.0'); |
93 | ok(-e 't/sql/DBICVersion-Schema-3.0-SQLite.sql', 'DDL for 3.0 got created successfully'); |
94 | ok(-e 't/sql/DBICVersion-Schema-1.0-3.0-SQLite.sql', 'DDL for migration from 1.0 to 3.0 got created successfully'); |
95 | ok(-e 't/sql/DBICVersion-Schema-2.0-3.0-SQLite.sql', 'DDL for migration from 2.0 to 3.0 got created successfully'); |
239acef9 |
96 | dies_ok { |
97 | $s->resultset('Foo')->create({ |
4ea147c6 |
98 | bar => 'frew', |
99 | baz => 'frew', |
100 | biff => 'frew', |
101 | }) |
239acef9 |
102 | } 'schema not deployed'; |
4ea147c6 |
103 | $handler->upgrade_single_step('2.0', '3.0'); |
239acef9 |
104 | lives_ok { |
105 | $s->resultset('Foo')->create({ |
106 | bar => 'frew', |
107 | baz => 'frew', |
108 | biff => 'frew', |
109 | }) |
110 | } 'schema is deployed'; |
e0743c25 |
111 | } |
b974984a |
112 | |
113 | done_testing; |
4ea147c6 |
114 | __END__ |
115 | |
116 | vim: ts=2,sw=2,expandtab |