#!/usr/bin/perl -w
eval
"use Test::mysqld 0.11"
;
plan
skip_all
=>
"Test::mysqld 0.11(or grator version) is need for test"
if
( $@ );
my
$mysqld
= Test::mysqld->new(
my_cnf
=> {
'skip-networking'
=>
''
,
}
);
plan
skip_all
=>
"MySQL may not be installed"
if
( !
defined
$mysqld
);
plan
tests
=> 4;
my
$dbh
= DBI->
connect
(
$mysqld
->dsn()) or
die
$DBI::errstr
;
$dbh
->
do
(
"CREATE TABLE foo (id INTEGER, name VARCHAR(20))"
);
$dbh
->
do
(
"insert into foo set id=0,name='xxx'"
);
my
$data
= Test::DataLoader::MySQL->new(
$dbh
,
DeleteBeforeInsert
=>1);
$data
->add(
'foo'
, 1,
{
id
=> 0,
name
=>
'aaa'
,
},
[
'id'
]);
$data
->load(
'foo'
, 1);
is_deeply(
$data
->do_select(
'foo'
,
"id=0"
), {
id
=>0,
name
=>
'aaa'
});
$data
->load_direct(
'foo'
,
{
id
=> 0,
name
=>
'xxx'
,
},
[
'id'
]);
is_deeply(
$data
->do_select(
'foo'
,
"id=0"
), {
id
=>0,
name
=>
'xxx'
});
$dbh
->
do
(
"CREATE TABLE baz (id INTEGER AUTO_INCREMENT, name VARCHAR(20), PRIMARY KEY(id))"
) ||
die
$dbh
->errstr;
$dbh
->
do
(
"insert into baz set name='aaa'"
);
$data
->add(
'baz'
, 1,
{
name
=>
'aaa'
,
},
[
'id'
]);
my
$keys
=
$data
->load(
'baz'
, 1);
is(
$keys
->{id}, 2);
is_deeply(
$data
->do_select(
'baz'
,
"id=2"
), {
id
=>2,
name
=>
'aaa'
});
$data
->clear;
$mysqld
->stop;