The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# $Id$
use strict;
use warnings;
use IO::File;
use Test::More;
use Log::Any::Adapter;

$^W = 1;

my $logtmp1;

END {
    foreach my $tmpfile($logtmp1) {
        if (defined($tmpfile)) {
            eval {unlink($tmpfile) or diag("unlink $tmpfile - $!")};
        }
    }
}

push @INC, 't';
require 'lib.pl';
my ($dsn,$user,$password,$table) = get_config();

if (!defined($dsn) || ($dsn eq "")) {
    plan skip_all => "connection orientated test not run because no database connect information supplied";
    exit 0;
} else {
    plan tests => 11;
}

my $out;
#########################

$logtmp1 = config();


Log::Any::Adapter->set ('File', $logtmp1);

#use_ok('DBIx::LogAny');
use DBIx::LogAny;

my $dbh = DBIx::LogAny->connect($dsn, $user, $password);
ok($dbh, 'connect to db');
BAIL_OUT("Failed to connect to database - all other tests abandoned")
	if (!$dbh);
my $size;
ok($size = check_log(\$out, $logtmp1, $size), 'test for log output');

{
    local $dbh->{PrintError} = 0;
    eval {$dbh->do(qq/drop table $table/)};
}
ok($size = check_log(\$out, $logtmp1, $size), 'drop test table');
ok($dbh->do(qq/create table $table (a int primary key, b char(50))/),
   'create test table');
ok($size = check_log(\$out, $logtmp1, $size), 'test for log output');

my $sth;

ok($sth = $dbh->prepare(qq/insert into $table values (?,?)/),
   'prepare insert');
SKIP: {
	skip "prepare failed", 3 unless $sth;

	ok($size = check_log(\$out, $logtmp1, $size), 'test for log output');

	ok($sth->execute(1, 'one'), 'insert one');
	ok($size = check_log(\$out, $logtmp1, $size), 'test for log output');
};

ok ($dbh->disconnect, 'disconnect');
ok($size = check_log(\$out, $logtmp1, $size), 'test for log output');