The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl

use strict;
use warnings;
use Test::More;

use DBI;
use SQL::Statement 1.401; # to make our 'SELECT 1' query work

use lib 'lib';
use DBIx::Iterator;

my $dbh = DBI->connect('dbi:DBM:dbm_type=DB_File');
my $db = DBIx::Iterator->new($dbh);
can_ok($db, 'prepare');

eval { $db->prepare() };
pass('$db->prepare() should fail on undefined queries') if $@;

my $st = $db->prepare('SELECT 1');
isa_ok($st, 'DBIx::Iterator::Statement');
can_ok($st, 'db', 'sth');

is( $st->db, $db, 'Prepared statement has pointer to database in db()' );
is( ref( $st->sth ), ref( $dbh->prepare('SELECT 1') ), 'Statement handles returned by $st->sth() are DBI statement handles' );

done_testing();