more tests for ExplicitVersions
[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
76dies_ok {
b539a216 77 my $vh = ExplicitVersions->new({
2c627d9e 78 ordered_versions => $versions,
ddfea806 79 schema_version => '1.0',
80 database_version => '1.1',
81 });
82 $vh->next_vesion_set
83} 'dies if database version not found in ordered_versions';
84
85dies_ok {
86 my $vh = ExplicitVersions->new({
87 ordered_versions => $versions,
2c627d9e 88 to_version => '0.0',
b539a216 89 schema_version => '1.0',
90 database_version => '1.0',
2c627d9e 91 });
92} 'cannot request a version before the current version';
93
94done_testing;
b539a216 95#vim: ts=2 sw=2 expandtab