failing test for explicit versions
[dbsrgits/DBIx-Class-DeploymentHandler.git] / t / version_handlers / explict_versions.t
CommitLineData
2c627d9e 1#!perl
2
3use Test::More;
4use Test::Exception;
5
6use lib 't/lib';
b539a216 7use aliased
8 'DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions';
2c627d9e 9
10my $versions = [map "$_.0", 0..100];
11
12{
b539a216 13 my $vh = ExplicitVersions->new({
2c627d9e 14 ordered_versions => $versions,
ddfea806 15 schema_version => '2.0',
16 database_version => '1.0',
17 });
18
19 ok $vh, 'VersionHandler gets instantiated';
20
21 ok(
22 eq_array($vh->next_version_set, [qw( 1.0 2.0 )]),
23 'first version pair works'
24 );
25 ok(
26 !$vh->next_version_set,
27 'next version set returns undef when we are done'
28 );
29}
30
31{
32 my $vh = ExplicitVersions->new({
33 ordered_versions => $versions,
2c627d9e 34 to_version => '1.0',
b539a216 35 schema_version => '1.0',
36 database_version => '1.0',
2c627d9e 37 });
38
39 ok $vh, 'VersionHandler gets instantiated';
40
b539a216 41 ok(
42 !$vh->next_version_set,
43 'next version set returns undef if we are at the version requested'
44 );
2c627d9e 45}
46
47{
b539a216 48 my $vh = ExplicitVersions->new({
2c627d9e 49 ordered_versions => $versions,
50 to_version => '5.0',
b539a216 51 schema_version => '1.0',
52 database_version => '1.0',
2c627d9e 53 });
54
55 ok $vh, 'VersionHandler gets instantiated';
b539a216 56 ok(
57 eq_array($vh->next_version_set, [qw( 1.0 2.0 )]),
58 'first version pair works'
59 );
60 ok(
61 eq_array($vh->next_version_set, [qw( 2.0 3.0 )]),
62 'second version pair works'
63 );
64 ok(
65 eq_array($vh->next_version_set, [qw( 3.0 4.0 )]),
66 'third version pair works'
67 );
68 ok(
69 eq_array($vh->next_version_set, [qw( 4.0 5.0 )]),
70 'fourth version pair works'
71 );
2c627d9e 72 ok( !$vh->next_version_set, 'no more versions after final pair' );
73 ok( !$vh->next_version_set, 'still no more versions after final pair' );
74}
75
8fdf6269 76{
77 my $vh = ExplicitVersions->new({
78 ordered_versions => $versions,
79 to_version => '1.0',
80 schema_version => '5.0',
81 database_version => '5.0',
82 });
83
84 ok $vh, 'VersionHandler gets instantiated';
85 ok(
0a11cb17 86 eq_array($vh->previous_version_set, [qw( 5.0 4.0 )]),
8fdf6269 87 'first version pair works'
88 );
89 ok(
0a11cb17 90 eq_array($vh->previous_version_set, [qw( 4.0 3.0 )]),
8fdf6269 91 'second version pair works'
92 );
93 ok(
0a11cb17 94 eq_array($vh->previous_version_set, [qw( 3.0 2.0 )]),
8fdf6269 95 'third version pair works'
96 );
97 ok(
0a11cb17 98 eq_array($vh->previous_version_set, [qw( 2.0 1.0 )]),
8fdf6269 99 'fourth version pair works'
100 );
101 ok( !$vh->previous_version_set, 'no more versions after final pair' );
102 ok( !$vh->previous_version_set, 'still no more versions after final pair' );
103}
104
2c627d9e 105dies_ok {
b539a216 106 my $vh = ExplicitVersions->new({
2c627d9e 107 ordered_versions => $versions,
58a5e27f 108 schema_version => '2.0',
ddfea806 109 database_version => '1.1',
110 });
8fdf6269 111 $vh->next_version_set
ddfea806 112} 'dies if database version not found in ordered_versions';
113
114dies_ok {
115 my $vh = ExplicitVersions->new({
116 ordered_versions => $versions,
2c627d9e 117 to_version => '0.0',
b539a216 118 schema_version => '1.0',
119 database_version => '1.0',
2c627d9e 120 });
8fdf6269 121 $vh->next_version_set;
4a65f60b 122} 'cannot request an upgrade before the current version';
123
124dies_ok {
125 my $vh = ExplicitVersions->new({
126 ordered_versions => $versions,
127 to_version => '2.0',
128 schema_version => '1.0',
129 database_version => '1.0',
130 });
131 $vh->previous_version_set;
132} 'cannot request a downgrade after the current version';
2c627d9e 133
134done_testing;
b539a216 135#vim: ts=2 sw=2 expandtab