X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fversion_handlers%2Fexplict_versions.t;h=07ad3dd3460b1488e44ac4bd854074dbf016da94;hb=cbbd1b5feb7bebfbef455dafc296f6b41f310943;hp=0d28f3bb10f57ad5824baa6409877d8e9eea56be;hpb=b539a2166a39a25bb3d1d91b47909500b55b3ee6;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/t/version_handlers/explict_versions.t b/t/version_handlers/explict_versions.t index 0d28f3b..07ad3dd 100644 --- a/t/version_handlers/explict_versions.t +++ b/t/version_handlers/explict_versions.t @@ -1,5 +1,8 @@ #!perl +use strict; +use warnings; + use Test::More; use Test::Exception; @@ -12,6 +15,25 @@ my $versions = [map "$_.0", 0..100]; { my $vh = ExplicitVersions->new({ ordered_versions => $versions, + schema_version => '2.0', + database_version => '1.0', + }); + + ok $vh, 'VersionHandler gets instantiated'; + + ok( + eq_array($vh->next_version_set, [qw( 1.0 2.0 )]), + 'first version pair works' + ); + ok( + !$vh->next_version_set, + 'next version set returns undef when we are done' + ); +} + +{ + my $vh = ExplicitVersions->new({ + ordered_versions => $versions, to_version => '1.0', schema_version => '1.0', database_version => '1.0', @@ -54,6 +76,44 @@ my $versions = [map "$_.0", 0..100]; ok( !$vh->next_version_set, 'still no more versions after final pair' ); } +{ + my $vh = ExplicitVersions->new({ + ordered_versions => $versions, + to_version => '1.0', + schema_version => '5.0', + database_version => '5.0', + }); + + ok $vh, 'VersionHandler gets instantiated'; + ok( + eq_array($vh->previous_version_set, [qw( 5.0 4.0 )]), + 'first version pair works' + ); + ok( + eq_array($vh->previous_version_set, [qw( 4.0 3.0 )]), + 'second version pair works' + ); + ok( + eq_array($vh->previous_version_set, [qw( 3.0 2.0 )]), + 'third version pair works' + ); + ok( + eq_array($vh->previous_version_set, [qw( 2.0 1.0 )]), + 'fourth version pair works' + ); + ok( !$vh->previous_version_set, 'no more versions after final pair' ); + ok( !$vh->previous_version_set, 'still no more versions after final pair' ); +} + +dies_ok { + my $vh = ExplicitVersions->new({ + ordered_versions => $versions, + schema_version => '2.0', + database_version => '1.1', + }); + $vh->next_version_set +} 'dies if database version not found in ordered_versions'; + dies_ok { my $vh = ExplicitVersions->new({ ordered_versions => $versions, @@ -61,7 +121,18 @@ dies_ok { schema_version => '1.0', database_version => '1.0', }); -} 'cannot request a version before the current version'; + $vh->next_version_set; +} 'cannot request an upgrade before the current version'; + +dies_ok { + my $vh = ExplicitVersions->new({ + ordered_versions => $versions, + to_version => '2.0', + schema_version => '1.0', + database_version => '1.0', + }); + $vh->previous_version_set; +} 'cannot request a downgrade after the current version'; done_testing; #vim: ts=2 sw=2 expandtab