The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Tests for Connector::Builtin::File::Simple
#

use strict;
use warnings;
use English;
use DBI;
use Log::Log4perl qw(:easy);
use File::Temp qw/ :POSIX /;
  
use Test::More;

eval {
    require DBD::SQLite;
};
if ($EVAL_ERROR) {
    plan skip_all => 'DBD::SQLite is required for tests';
}

Log::Log4perl->easy_init($ERROR);

BEGIN {
    use_ok( 'Connector::Proxy::DBI' );
}

require_ok( 'Connector::Proxy::DBI' );

my $dbfile = tmpnam();  

my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","", {AutoCommit => 1, RaiseError => 1});
my $sth = $dbh->prepare("CREATE table test( id int, name text ); commit;");
$sth->execute();

$sth = $dbh->prepare("INSERT INTO test (id,name) VALUES (1,'test me'),(2,'test me too')");
$sth->execute();

# diag "Connector::Proxy::File::Simple tests\n";
###########################################################################
my $conn = Connector::Proxy::DBI->new(
    {
    LOCATION  => "dbi:SQLite:dbname=$dbfile",
    table => 'test',
    column => 'name',
    condition => 'id = ?',
    });

is($conn->get(1), 'test me');
is($conn->get(2), 'test me too');

$conn->column('id');
$conn->condition('name like ?');

is($conn->get_size('%test%'), 2);

is($conn->get_size('test me'), 1);
my @res = $conn->get_list('test me');
is(scalar @res, 1);
is($res[0], 1);

$conn->condition('id = ?');
$conn->column('');

my $res = $conn->get_hash(1);

is ($res->{id}, 1);
is ($res->{name}, 'test me');

$conn->column({ 'id' => 'id', '`index`' => 'id', 'title' => 'name' });
$res = $conn->get_hash(1);

is ($res->{id}, 1);
is ($res->{index}, 1);
is ($res->{title}, 'test me');
is ($res->{name}, undef);

unlink($dbfile);

done_testing();