use strict; use Wiki::Toolkit::TestLib; use Test::More; if ( scalar @Wiki::Toolkit::TestLib::wiki_info == 0 ) { plan skip_all => "no backends configured"; } else { plan tests => ( 3 * scalar @Wiki::Toolkit::TestLib::wiki_info ); } my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker; while ( my $wiki = $iterator->new_wiki ) { my $store = $wiki->store; my ($cur_ver, $db_ver); ($cur_ver, $db_ver) = $store->schema_current; cmp_ok( $cur_ver, '==', $db_ver, "schema_current returns matching versions when schema is current" ); # Now we munge the database to simulate an old schema my $dbh = $store->dbh; my $sth = $dbh->prepare("UPDATE schema_info SET version = 1"); $sth->execute; ($cur_ver, $db_ver) = $store->schema_current; cmp_ok ($cur_ver, '>', $db_ver, "schema_current returns \$cur_ver > \$db_ver when schema is older" ); # Now we get rid of the schema table to simulate a really old DB $sth = $dbh->prepare("DROP TABLE schema_info"); $sth->execute; ($cur_ver, $db_ver) = $store->schema_current; cmp_ok ($cur_ver, '>', $db_ver, "schema_current returns \$cur_ver > \$db_ver when schema is missing" ); }