webgui/t/DatabaseLink.t
2007-07-14 19:56:27 +00:00

76 lines
2.1 KiB
Perl

#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2007 Plain Black Corporation.
#-------------------------------------------------------------------
# Please read the legal notices (docs/legal.txt) and the license
# (docs/license.txt) that came with this distribution before using
# this software.
#-------------------------------------------------------------------
# http://www.plainblack.com info@plainblack.com
#-------------------------------------------------------------------
use FindBin;
use strict;
use lib "$FindBin::Bin/lib";
use WebGUI::Test;
use WebGUI::Session;
use WebGUI::DatabaseLink;
use Test::More; # increment this value for each test you create
my $session = WebGUI::Test->session;
#DSNs for parsing tests, particularly the database name
my $DSNs = [
{
dsn => 'DBI:mysql:colonSeparated:myHost:8008',
dbName => 'colonSeparated',
comment => 'explicit',
},
{
dsn => 'DBI:mysql:database=myDatabase',
dbName => 'myDatabase',
comment => 'database=',
},
{
dsn => 'DBI:mysql:dbName=myDbName',
dbName => undef,
comment => 'dbName=, bad capitalization',
},
{
dsn => 'DBI:mysql:dbname=mydbname',
dbName => 'mydbname',
comment => 'dbname=',
},
{
dsn => 'DBI:mysql:dbnane=myDbName',
dbName => undef,
comment => 'dbnane=, misspelling',
},
{
dsn => 'DBI:mysql:db=myDb',
dbName => 'myDb',
comment => 'db=',
},
];
plan tests => 2 + scalar @{ $DSNs };
my $dbLink = WebGUI::DatabaseLink->new($session, 0);
is($dbLink->get->{DSN}, $session->config->get('dsn'), 'DSN set correctly for default database link');
my ($databaseName) = $session->db->quickArray('SELECT DATABASE()');
is ($dbLink->databaseName, $databaseName, 'databaseName parsed default DSN from config file');
foreach my $dsn (@{ $DSNs }) {
my $dbl = WebGUI::DatabaseLink->create($session, { DSN => $dsn->{dsn} });
is( $dbl->databaseName(), $dsn->{dbName}, $dsn->{comment} );
$dbl->delete;
}
END {
foreach my $link ($dbLink, ) {
$link->delete if (defined $link and ref $link eq 'WebGUI::DatabaseLink');
}
}