BEGIN {
plan
tests
=> 19;
}
my
$biosql
= DBTestHarness->new(
"biosql"
);
ok
$biosql
;
my
$dbc
=
$biosql
->get_DBContext();
ok
$dbc
;
my
$db
=
$dbc
->dbadaptor();
ok
$db
->isa(
"Bio::DB::DBAdaptorI"
);
ok
$db
->isa(
"Bio::DB::BioSQL::DBAdaptor"
);
my
$dbh
=
$dbc
->dbi()->new_connection(
$dbc
);
ok
$dbh
;
my
$rc
=
$dbh
->ping();
ok (
$rc
&& (
$rc
ne
'0 but true'
));
my
$dsn
=
$dbc
->dbi()->build_dsn(
$dbc
);
my
$db2
= Bio::DB::BioDB->new(
-database
=>
"biosql"
,
-dsn
=>
$dsn
);
my
$dbc2
=
$db2
->dbcontext;
ok (
$dbc2
->dbi->build_dsn(
$dbc2
),
$dsn
);
$dbc2
->host(
"i.dont.exist.com"
);
$dbc2
->port(9876);
ok (
$dbc2
->dbi->build_dsn(
$dbc2
),
$dsn
);
$db2
=
undef
;
$dbc2
= Bio::DB::SimpleDBContext->new(
-dsn
=>
$dsn
);
ok (
$dbc2
->driver,
$dbc
->driver);
ok (
$dbc2
->dbname,
$dbc
->dbname);
ok (
$dbc2
->host,
$dbc
->host);
ok (
$dbc2
->port,
$dbc
->port);
my
$ns
= Bio::BioEntry->new(
-namespace
=>
"__dummy__"
,
-authority
=>
"nobody"
);
my
$adp
=
$db
->get_object_adaptor(
"BioNamespace"
);
$adp
->caching_mode(0);
my
$pns
= Bio::DB::Persistent::BioNamespace->new(
-identifiable
=>
$ns
,
-adaptor
=>
$adp
);
ok (
$pns
->namespace,
$ns
->namespace);
ok (
$pns
->authority,
$ns
->authority);
my
$dbns
=
$adp
->find_by_unique_key(
$pns
);
if
(
$dbns
) {
warn
(
"found __dummy__ namespace - leftover from previously aborted test?"
);
ok (
$dbns
->remove(), 1);
$dbns
->commit;
}
ok
$pns
->create();
$dbns
= Bio::DB::Persistent::BioNamespace->new(
-identifiable
=>
$ns
);
$dbns
=
$adp
->find_by_unique_key(
$dbns
);
ok (
$dbns
);
ok (
$dbns
->primary_key,
$pns
->primary_key);
ok (
$dbns
->namespace,
$pns
->namespace);
$adp
->rollback();
$dbns
=
$adp
->find_by_unique_key(
$pns
);
ok (
$dbns
,
undef
);
if
(
$dbns
) {
warn
(
"your RDBMS does not have transactions enabled - please fix this\n"
);
}
$dbh
->disconnect();