X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fversion_handlers%2Fmonotonic.t;h=c0d1f2fbc88409d0f0d8105d83517cea49512cf5;hb=cbbd1b5feb7bebfbef455dafc296f6b41f310943;hp=33cdfa85a1785c2005f2626ce86ed77b4309b49f;hpb=df0fcae90ce59913f26ae281ad8124952cf11542;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/t/version_handlers/monotonic.t b/t/version_handlers/monotonic.t index 33cdfa8..c0d1f2f 100644 --- a/t/version_handlers/monotonic.t +++ b/t/version_handlers/monotonic.t @@ -1,5 +1,8 @@ #!perl +use strict; +use warnings; + use Test::More; use Test::Exception; @@ -27,69 +30,97 @@ use aliased { my $vh = Monotonic->new({ - to_version => 1, - schema_version => 1, - database_version => 1, + to_version => 1, + schema_version => 1, + database_version => 1, }); ok $vh, 'VersionHandler gets instantiated'; ok( - !$vh->next_version_set, - 'next version set returns undef if we are at the version requested' + !$vh->next_version_set, + 'next version set returns undef if we are at the version requested' ); } -{ +ONETOFIVE: { my $vh = Monotonic->new({ - to_version => 5, - schema_version => 1, - database_version => 1, + to_version => 5, + schema_version => 1, + database_version => 1, }); ok $vh, 'VersionHandler gets instantiated'; ok( - eq_array($vh->next_version_set, [1,2]), - 'first version pair works' + eq_array($vh->next_version_set, [1,2]), + 'first version pair works' ); ok( - eq_array($vh->next_version_set, [2,3]), - 'second version pair works' + eq_array($vh->next_version_set, [2,3]), + 'second version pair works' ); ok( - eq_array($vh->next_version_set, [3,4]), - 'third version pair works' + eq_array($vh->next_version_set, [3,4]), + 'third version pair works' ); ok( - eq_array($vh->next_version_set, [4,5]), - 'fourth version pair works' + eq_array($vh->next_version_set, [4,5]), + 'fourth version pair works' ); ok( !$vh->next_version_set, 'no more versions after final pair' ); ok( !$vh->next_version_set, 'still no more versions after final pair' ); } +FIVETOONE: { + my $vh = Monotonic->new({ + to_version => 1, + schema_version => 1, + database_version => 5, + }); + + ok $vh, 'VersionHandler gets instantiated'; + ok( + eq_array($vh->previous_version_set, [5,4]), + 'first version pair works' + ); + ok( + eq_array($vh->previous_version_set, [4,3]), + 'second version pair works' + ); + ok( + eq_array($vh->previous_version_set, [3,2]), + 'third version pair works' + ); + ok( + eq_array($vh->previous_version_set, [2,1]), + 'fourth version pair works' + ); + ok( !$vh->previous_version_set, 'no more versions before initial pair' ); + ok( !$vh->previous_version_set, 'still no more versions before initial pair' ); +} + dies_ok { my $vh = Monotonic->new({ - schema_version => 2, - database_version => '1.1', + schema_version => 2, + database_version => '1.1', }); $vh->next_version_set } 'dies if database version not an Int'; dies_ok { my $vh = Monotonic->new({ - to_version => 0, - schema_version => 1, - database_version => 1, + to_version => 0, + schema_version => 1, + database_version => 1, }); $vh->next_version_set; } 'cannot request an upgrade version before the current version'; dies_ok { my $vh = Monotonic->new({ - to_version => 2, - schema_version => 1, - database_version => 1, + to_version => 2, + schema_version => 1, + database_version => 1, }); $vh->previous_version_set; } 'cannot request a downgrade version after the current version';