The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

# Smattering of dbh attribute tests.
# FIXME:  add generic handle attribute tests, FB-specific attribute tests

use Test::More;

use lib 't','.';

use TestFirebird;

my $T = TestFirebird->new;

plan tests => 9;

my( $dbh, $error ) = $T->connect_to_database;
ok(!$error, "Connected to database") or diag($error);

ok($dbh->{Active},
   "Active attribute is true after connect");

ok(defined($dbh->{AutoCommit}),
   "AutoCommit attribute supported");

isa_ok($dbh->{Driver}, 'DBI::dr',
   "Driver attribute returns a DBI::dr");

ok($dbh->{Name} =~ /db=[^;]+/,
   "Name attribute is of the form db=...")
  or diag("\$dbh->{Name} is $dbh->{Name}");

$dbh->prepare('SELECT 1 FROM RDB$DATABASE');

cmp_ok($dbh->{Statement}, 'eq', 'SELECT 1 FROM RDB$DATABASE',
       "Statement attribute is as expected");

# Borrowed from DBD::Pg
is($dbh->{RowCacheSize}, undef,
   "RowCacheSize attribute is undefined");
$dbh->{RowCacheSize} = 42;
is($dbh->{RowCacheSize}, undef,
   "RowCacheSize attribute is undefined after assignment");

$dbh->disconnect();
ok(!$dbh->{Active},
   "Active attribute is false after disconnect");