fix monotonic for error checking
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / version_handlers / monotonic.t
CommitLineData
dab1797d 1#!perl
2
3use Test::More;
4use Test::Exception;
5
6use lib 't/lib';
7use aliased
8 'DBIx::Class::DeploymentHandler::VersionHandler::Monotonic';
9
10{
11 my $vh = Monotonic->new({
12 schema_version => 2,
13 database_version => 1,
14 });
15
16 ok $vh, 'VersionHandler gets instantiated';
17
18 ok(
19 eq_array($vh->next_version_set, [1,2]),
20 'first version pair works'
21 );
22 ok(
23 !$vh->next_version_set,
24 'next version set returns undef when we are done'
25 );
26}
27
28{
29 my $vh = Monotonic->new({
30 to_version => 1,
31 schema_version => 1,
32 database_version => 1,
33 });
34
35 ok $vh, 'VersionHandler gets instantiated';
36
37 ok(
38 !$vh->next_version_set,
39 'next version set returns undef if we are at the version requested'
40 );
41}
42
43{
44 my $vh = Monotonic->new({
45 to_version => 5,
46 schema_version => 1,
47 database_version => 1,
48 });
49
50 ok $vh, 'VersionHandler gets instantiated';
51 ok(
52 eq_array($vh->next_version_set, [1,2]),
53 'first version pair works'
54 );
55 ok(
dab1797d 56 eq_array($vh->next_version_set, [2,3]),
57 'second version pair works'
58 );
59 ok(
60 eq_array($vh->next_version_set, [3,4]),
61 'third version pair works'
62 );
63 ok(
64 eq_array($vh->next_version_set, [4,5]),
65 'fourth version pair works'
66 );
67 ok( !$vh->next_version_set, 'no more versions after final pair' );
68 ok( !$vh->next_version_set, 'still no more versions after final pair' );
69}
70
71dies_ok {
72 my $vh = Monotonic->new({
73 schema_version => 2,
74 database_version => '1.1',
75 });
df0fcae9 76 $vh->next_version_set
dab1797d 77} 'dies if database version not an Int';
78
79dies_ok {
80 my $vh = Monotonic->new({
81 to_version => 0,
82 schema_version => 1,
83 database_version => 1,
84 });
df0fcae9 85 $vh->next_version_set;
86} 'cannot request an upgrade version before the current version';
87
88dies_ok {
89 my $vh = Monotonic->new({
90 to_version => 2,
91 schema_version => 1,
92 database_version => 1,
93 });
94 $vh->previous_version_set;
95} 'cannot request a downgrade version after the current version';
dab1797d 96
97done_testing;
98#vim: ts=2 sw=2 expandtab