The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl -w


use strict;
use warnings;
use File::Spec;
use Test::More;
use Jifty::DBI::Handle;

BEGIN { require "t/utils.pl" }
our (@available_drivers);

use constant TESTS_PER_DRIVER => 7;

my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
plan tests => $total;

foreach my $d ( @available_drivers ) {
SKIP: {
    unless( should_test( $d ) ) {
        skip "ENV is not defined for driver '$d'", TESTS_PER_DRIVER;
    }

    my $handle = get_handle($d);
    connect_handle($handle);
    isa_ok( $handle->dbh, 'DBI::db' );

    my $sth;
    drop_table_if_exists( 'test', $handle );
    drop_table_if_exists( 'test1', $handle );

    $sth = $handle->simple_query("CREATE TABLE test (a int)");
    ok $sth, 'created a table';

    ok $handle->simple_query("insert into test values(1)"), "inserted a record";
    is $handle->simple_query("select * from test")->fetchrow_hashref->{'a'},
        1, 'correct value';

    $handle->rename_table( table => 'test', to => 'test1' );

    is $handle->simple_query("select * from test1")->fetchrow_hashref->{'a'},
        1, 'correct value';

    my @warnings;
    ok !eval {
        local $SIG{__WARN__} = sub { push @warnings, @_ };
        $handle->simple_query("select * from test")
    }, "no test table anymore";
    ok(@warnings, "got some warnings");

}} # SKIP, foreach blocks

1;