basic compat fixes for SQLT2
[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';
02d58ac0 7use DBICDHTest;
2c627d9e 8use DBICTest;
9use DBIx::Class::DeploymentHandler;
c703d15d 10use DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions;
2c627d9e 11my $db = 'dbi:SQLite:db.db';
12my @connection = ($db, '', '', { ignore_version => 1 });
13my $sql_dir = 't/sql';
14
02d58ac0 15DBICDHTest::ready;
2c627d9e 16
17use DBICVersion_v1;
18my $s = DBICVersion::Schema->connect(@connection);
19
20my $handler = DBIx::Class::DeploymentHandler->new({
21 upgrade_directory => $sql_dir,
22 schema => $s,
23 databases => 'SQLite',
fb105cfa 24 sqltargs => { add_drop_table => 0 },
2c627d9e 25});
26
fb105cfa 27my $v_storage = $handler->version_storage;
28
2c627d9e 29my $version = $s->schema_version();
a912450b 30$handler->prepare_install();
2c627d9e 31
32$handler->install;
33
34my $versions = [map "$_.0", 0..100];
35
36{
c703d15d 37 my $vh = DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions->new({
2c627d9e 38 schema => $s,
39 ordered_versions => $versions,
40 to_version => '1.0',
fb105cfa 41 version_storage => $v_storage,
2c627d9e 42 });
43
44 ok $vh, 'VersionHandler gets instantiated';
45
46 ok( !$vh->next_version_set, 'next version set returns undef if we are at the version requested' );
47}
48
49{
c703d15d 50 my $vh = DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions->new({
2c627d9e 51 schema => $s,
52 ordered_versions => $versions,
53 to_version => '5.0',
fb105cfa 54 version_storage => $v_storage,
2c627d9e 55 });
56
57 ok $vh, 'VersionHandler gets instantiated';
58 ok( eq_array($vh->next_version_set, [qw( 1.0 2.0 )]), 'first version pair works' );
59 ok( eq_array($vh->next_version_set, [qw( 2.0 3.0 )]), 'second version pair works' );
60 ok( eq_array($vh->next_version_set, [qw( 3.0 4.0 )]), 'third version pair works' );
61 ok( eq_array($vh->next_version_set, [qw( 4.0 5.0 )]), 'fourth version pair works' );
62 ok( !$vh->next_version_set, 'no more versions after final pair' );
63 ok( !$vh->next_version_set, 'still no more versions after final pair' );
64}
65
66dies_ok {
c703d15d 67 my $vh = DBIx::Class::DeploymentHandler::VersionHandler::ExplicitVersions->new({
2c627d9e 68 schema => $s,
69 ordered_versions => $versions,
70 to_version => '0.0',
fb105cfa 71 version_storage => $v_storage,
2c627d9e 72 });
73} 'cannot request a version before the current version';
74
75done_testing;
76__END__
77
78vim: ts=2 sw=2 expandtab