DBIx-ThinSQL
view release on metacpan or search on metacpan
t/DBIx/ThinSQL.t view on Meta::CPAN
use strict;
use warnings;
use lib 't/lib';
use DBIx::ThinSQL ':all';
use Test::DBIx::ThinSQL qw/run_in_tempdir/;
use Test::Fatal qw/exception/;
use Test::More;
plan skip_all => 'only test with DBD::SQLite'
unless eval { require DBD::SQLite };
# now let's make a database check our syntax
run_in_tempdir {
my $driver = eval { require DBD::SQLite } ? 'SQLite' : 'DBM';
# DBD::DBM doesn't seem to support this style of construction
SKIP: {
skip 'DBD::DBM limitation', 1 if $driver eq 'DBM';
my $db = DBI->connect(
"dbi:$driver:dbname=x",
'', '',
{
RaiseError => 1,
PrintError => 0,
RootClass => 'DBIx::ThinSQL',
},
);
isa_ok $db, 'DBIx::ThinSQL::db';
}
my $db =
DBIx::ThinSQL->connect( "dbi:$driver:dbname=x'", '', '',
{ RaiseError => 1, PrintError => 0, },
);
isa_ok $db, 'DBIx::ThinSQL::db';
$db->do("CREATE TABLE users ( name TEXT PRIMARY KEY, phone TEXT )");
my $res;
my @res;
$res = $db->xdo(
insert_into => 'users',
values => [ 'name1', bv('phone1') ],
);
is $res, 1, 'xdo insert 1';
$res = $db->xdo(
insert_into => 'users',
values => [ bv('name2'), 'phone4' ],
);
is $res, 1, 'xdo insert 2';
$res = $db->xdo(
insert_into => 'users',
values => [ 'name3', 'phone3' ],
);
is $res, 1, 'xdo insert 3';
$res = $db->xdo(
delete_from => 'users',
where => [ 'name = ', bv('name3') ],
);
( run in 1.119 second using v1.01-cache-2.11-cpan-54e63673c56 )