#!perl use strict; use warnings; BEGIN { eval "require DBD::SQLite"; if($@) { require Test::More; Test::More::plan(skip_all=>"DBD::SQLite is required to run these tests.") } } use Test::More tests => 5; use Hypatia::DBI; use DBI; use Scalar::Util qw(blessed); use Cwd; use Path::Class; my $cwd = getcwd(); my $dir = $ENV{TEMP} ? $ENV{TEMP} : $cwd; my $file = file($dir,"hypatia_test.db"); unlink $file if -e $file; open(my $fh,">",$file) or die $!; close($fh); my $dsn = "dbi:SQLite:dbname=$file"; my $dbh=DBI->connect($dsn,"",""); ok(blessed($dbh) eq 'DBI::db'); $dbh->do("create table dbi_test (x real,y real)") or die $dbh->errstr; $dbh->disconnect; my $dbi = Hypatia::DBI->new({dsn=>$dsn,table=>"dbi_test"}); ok(blessed($dbi) eq 'Hypatia::DBI'); ok(blessed($dbi->dbh) eq 'DBI::db'); ok($dbi->dbh->{Active}); my $query = $dbi->_build_query('x','y'); ok($query =~ /select\s+x,y\s+from\s+dbi_test\s+where\s+x\s+is\s+not\s+null\s+and\s+y\s+is\s+not\s+null\s+group\s+by\s+x,y\s+order\s+by\s+x,y/); $dbi->dbh->disconnect;