plan
tests
=> 3;
print
STDERR
"\n"
;
my
$schema
=
$ENV
{DBD_DB2_SCHEMA} || read_input(
"please specify the writable db schema"
);
my
$db
=
$ENV
{DBD_DB2_DBNAME} || read_input(
"please specify the writable db name"
);
my
$user
=
$ENV
{DBD_DB2_USER} || read_input(
"please specify the DB2 username to use"
);
my
$pass
=
$ENV
{DBD_DB2_PASSWD} || read_input(
"please specify the DB2 password to use"
);
my
$table
=
$ENV
{DBD_DB2_TABLE} || read_input(
"please specify a DB2 table name to create/test/drop"
);
my
$tbl
=
$schema
.
"."
.
$table
;
my
$dsn
=
"dbi:DB2:$db"
;
__PACKAGE__->set_db(
Main
=>
$dsn
,
$user
,
$pass
,
);
__PACKAGE__->table(
$tbl
);
__PACKAGE__->drop_table;
__PACKAGE__->create_table(
q{
id INTEGER NOT NULL,
foo VARCHAR(10),
bar VARCHAR(10),
mydate DATE,
PRIMARY KEY(id)
}
);
sub
read_input
{
my
$prompt
=
shift
;
print
STDERR
"$prompt: "
;
my
$value
= <STDIN>;
chomp
$value
;
return
$value
;
}
END { __PACKAGE__->drop_table }
my
@dat
=
qw(foo bar baz)
;
my
$lt
=
'2004-06-21'
;
my
$id
=0;
my
@AoH
;
foreach
my
$dat
(
@dat
) {
my
%row
= (
id
=>
$id
,
foo
=>
$dat
[
$id
],
bar
=>
'bar'
.
$id
,
mydate
=>
$lt
);
$id
++;
push
@AoH
, {
%row
};
}
my
$loader
= Class::DBI::Loader->new(
dsn
=>
$dsn
,
user
=>
$user
,
password
=>
$pass
,
);
$tbl
=
uc
(
$tbl
);
my
$subclass
=
lc
(
$tbl
);
$subclass
=~ s/_(\w)/
ucfirst
($1)/eg;
my
$class
=
ucfirst
(
$subclass
);
is(
$loader
->find_class(
$tbl
),
$class
);
my
$class1
=
$loader
->find_class(
$tbl
);
$class1
->create(
$_
)
foreach
(
@AoH
);
my
$obj
=
$class1
->retrieve(1);
is(
$obj
->id, 1);
is(
$obj
->foo,
"bar"
);