Rose-DB
view release on metacpan or search on metacpan
is($db->domain, 'test', "domain()");
is($db->type, 'mysql', "type()");
is($db->print_error, $dbh->{'PrintError'}, 'print_error() 2');
is($db->print_error, $db->connect_option('PrintError'), 'print_error() 3');
is($db->null_date, '0000-00-00', "null_date()");
is($db->null_datetime, '0000-00-00 00:00:00', "null_datetime()");
is($db->format_date(parse_date('12/31/2002', 'floating')), '2002-12-31', "format_date() floating");
is($db->format_datetime(parse_date('12/31/2002 12:34:56', 'floating')), '2002-12-31 12:34:56', "format_datetime() floating");
is($db->format_timestamp(parse_date('12/31/2002 12:34:56', 'floating')), '2002-12-31 12:34:56', "format_timestamp() floating");
if($db->database_version >= 5_000_003)
{
is($db->format_bitfield($db->parse_bitfield('1010')),
q(b'1010'), "format_bitfield() 1");
is($db->format_bitfield($db->parse_bitfield(q(B'1010'))),
q(b'1010'), "format_bitfield() 2");
is($db->format_bitfield($db->parse_bitfield(2), 4),
q(b'0010'), "format_bitfield() 3");
is($db->format_bitfield($db->parse_bitfield('0xA'), 4),
q(b'1010'), "format_bitfield() 4");
}
else
{
is($db->format_bitfield($db->parse_bitfield('1010')),
q(10), "format_bitfield() 1");
is($db->format_bitfield($db->parse_bitfield(q(B'1010'))),
q(10), "format_bitfield() 2");
is($db->format_bitfield($db->parse_bitfield(2), 4),
q(2), "format_bitfield() 3");
is($db->format_bitfield($db->parse_bitfield('0xA'), 4),
q(10), "format_bitfield() 4");
}
#is($db->autocommit + 0, $dbh->{'AutoCommit'} + 0, 'autocommit() 1');
$db->autocommit(1);
is($db->autocommit + 0, 1, 'autocommit() 2');
is($dbh->{'AutoCommit'} + 0, 1, 'autocommit() 3');
$db->autocommit(0);
is($db->autocommit + 0, 0, 'autocommit() 4');
is($dbh->{'AutoCommit'} + 0, 0, 'autocommit() 5');
my $dbh_copy = $db->retain_dbh;
$db->disconnect;
foreach my $attr (qw(mysql_auto_reconnect mysql_client_found_rows mysql_compression mysql_connect_timeout mysql_embedded_groups mysql_embedded_options mysql_enable_utf8 mysql_enable_utf8mb4 mysql_local_infile mysql_multi_statements mysql_read_defau...
{
SKIP:
{
if($attr eq 'mysql_enable_utf8mb4' &&
($DBD::mysql::VERSION lt '4.032' or $DBD::mysql::VERSION eq '4.032_01'))
{
skip('mysql_enable_utf8mb4', 3);
}
$db = Rose::DB->new($attr => 1);
is($db->$attr(), 1, "$attr 1");
$db->connect;
if($attr eq 'mysql_auto_reconnect') # can't read back the others?
{
is($db->$attr(), 1, "$attr 2");
is($db->dbh->{$attr}, 1, "$attr 3");
}
else { SKIP: { skip("$attr dbh read-back", 2) } }
}
}
TEST:
{
my $dbh = Rose::DB->new->retain_dbh;
$db = Rose::DB->new(dbh => $dbh);
}
$db->retain_dbh;
$db->release_dbh;
ok($db->{'dbh'}{'Active'}, 'retain stuffed dbh');
$db->connect;
$db->mysql_enable_utf8(1);
is($db->mysql_enable_utf8, 1, 'mysql_enable_utf8 2');
SKIP:
{
if($DBD::mysql::VERSION lt '4.032' || $DBD::mysql::VERSION eq '4.032_01')
{
skip ('mysql_enable_utf8mb4', 2);
}
$db->mysql_enable_utf8(0);
$db->mysql_enable_utf8mb4(1);
is($db->mysql_enable_utf8, 0, 'mysql_enable_utf8 3');
is($db->mysql_enable_utf8mb4, 1, 'mysql_enable_utf8mb4 2');
}
if($db->isa('My::DB2'))
{
$My::DB2::Called{'init_dbh'} = 0;
$db = Rose::DB->new('mysql');
$db->dbh;
is($My::DB2::Called{'init_dbh'}, 1, 'SUPER:: from driver');
}
else
{
SKIP: { skip('SUPER:: from driver tests', 1) }
}
}
$db->dsn('dbi:mysql:dbname=dbfoo;host=hfoo;port=pfoo');
#ok(!defined($db->database) || $db->database eq 'dbfoo', 'dsn() 1');
#ok(!defined($db->host) || $db->host eq 'hfoo', 'dsn() 2');
#ok(!defined($db->port) || $db->port eq 'port', 'dsn() 3');
eval { $db->dsn('dbi:Pg:dbname=dbfoo;host=hfoo;port=pfoo') };
ok($@ || $DBI::VERSION < 1.43, 'dsn() driver change');
Rose::DB->register_db
(
domain => 'stub',
type => 'default',
driver => 'MySQL',
);
$db = Rose::DB->new
(
domain => 'stub',
type => 'default',
dsn => "dbi:mysql:mydb",
);
is($db->database, 'mydb', 'parse_dsn() 1');
sub lookup_ip
{
my($name) = shift;
my $address = (gethostbyname($name))[4] or return 0;
my @octets = unpack("CCCC", $address);
return 0 unless($name && @octets);
return join('.', @octets), "\n";
}
(my $version = $DBI::VERSION) =~ s/_//g;
if(have_db('mysql') && $version >= 1.24)
{
my $x = 0;
my $handler = sub { $x++; die "Error: $x" };
( run in 1.071 second using v1.01-cache-2.11-cpan-5837b0d9d2c )