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=a2e2e76687d3f9a36fa32f0cd014b647d41c0fe7;hpb=dab1797def4543a19c02366b29215aeb1d27d3b4;p=dbsrgits%2FDBIx-Class-DeploymentHandler.git diff --git a/t/version_handlers/monotonic.t b/t/version_handlers/monotonic.t index a2e2e76..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,70 +30,100 @@ 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->previous_version_set, [1,2]), - 'doing previous version works' + eq_array($vh->next_version_set, [2,3]), + 'second version pair works' ); ok( - eq_array($vh->next_version_set, [1,2]), - 'first version pair works again' + eq_array($vh->next_version_set, [3,4]), + 'third version pair works' ); ok( - eq_array($vh->next_version_set, [2,3]), - 'second 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->next_version_set, [3,4]), - 'third version pair works' + eq_array($vh->previous_version_set, [5,4]), + 'first version pair works' ); ok( - eq_array($vh->next_version_set, [4,5]), - 'fourth version pair works' + eq_array($vh->previous_version_set, [4,3]), + 'second 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' ); + 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_vesion_set + $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, }); -} 'cannot request a version before the current version'; + $vh->previous_version_set; +} 'cannot request a downgrade version after the current version'; done_testing; #vim: ts=2 sw=2 expandtab