# vim: ft=perl
use Test::More 'no_plan';
# $Id: handle-as-coderef.t,v 1.2 2010/07/16 00:12:58 wright Exp $
use strict;
$^W = 1;
use_ok 'DBD::Multi';
can_ok 'DBD::Multi::db', 'prepare';
my $c = DBI->connect('DBI:Multi:', undef, undef, {
dsns => [
1 => ['dbi:SQLite:one.db', '',''],
1 => sub { DBI->connect('DBI:SQLite:two.db') },
2 => ['dbi:SQLite:three.db','',''],
2 => sub { DBI->connect('DBI:SQLite:four.db') },
],
});
isa_ok $c, 'DBI::db';
cmp_ok scalar($c->data_sources), '==', 4, "data_sources returned some";
# one
my $sth = $c->prepare("CREATE TABLE multi(id int)");
isa_ok $sth, 'DBI::st';
# two
is $c->do("CREATE TABLE multi(id int)"), '0E0', 'do successful';
{
local $SIG{__WARN__} = sub { }; # I don't want to hear it.
eval { my $sth = $c->prepare("CREAATE TABLE multi(id int)"); };
ok $@, "Syntax errror: $@";
}
$c = DBI->connect('DBI:Multi:', undef, undef, {
dsns => [
1 => sub { return undef },
2 => ['dbi:SQLite:one.db', '',''],
],
});
# CPAN Ticket 58769
my $sth2 = $c->prepare("CREATE TABLE multi2(id int)");
isa_ok $sth2, 'DBI::st';
is $c->do("CREATE TABLE multi2(id int)"), '0E0', 'do successful';
unlink "$_.db" for qw[one two three four five six seven eight nine ten];