rework code a bit and die on a logic error
[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,
15 to_version => '1.0',
b539a216 16 schema_version => '1.0',
17 database_version => '1.0',
2c627d9e 18 });
19
20 ok $vh, 'VersionHandler gets instantiated';
21
b539a216 22 ok(
23 !$vh->next_version_set,
24 'next version set returns undef if we are at the version requested'
25 );
2c627d9e 26}
27
28{
b539a216 29 my $vh = ExplicitVersions->new({
2c627d9e 30 ordered_versions => $versions,
31 to_version => '5.0',
b539a216 32 schema_version => '1.0',
33 database_version => '1.0',
2c627d9e 34 });
35
36 ok $vh, 'VersionHandler gets instantiated';
b539a216 37 ok(
38 eq_array($vh->next_version_set, [qw( 1.0 2.0 )]),
39 'first version pair works'
40 );
41 ok(
42 eq_array($vh->next_version_set, [qw( 2.0 3.0 )]),
43 'second version pair works'
44 );
45 ok(
46 eq_array($vh->next_version_set, [qw( 3.0 4.0 )]),
47 'third version pair works'
48 );
49 ok(
50 eq_array($vh->next_version_set, [qw( 4.0 5.0 )]),
51 'fourth version pair works'
52 );
2c627d9e 53 ok( !$vh->next_version_set, 'no more versions after final pair' );
54 ok( !$vh->next_version_set, 'still no more versions after final pair' );
55}
56
57dies_ok {
b539a216 58 my $vh = ExplicitVersions->new({
2c627d9e 59 ordered_versions => $versions,
60 to_version => '0.0',
b539a216 61 schema_version => '1.0',
62 database_version => '1.0',
2c627d9e 63 });
64} 'cannot request a version before the current version';
65
66done_testing;
b539a216 67#vim: ts=2 sw=2 expandtab