webgui/t/SQL.t
2005-11-07 01:54:35 +00:00

166 lines
5.1 KiB
Perl

#-------------------------------------------------------------------
# WebGUI is Copyright 2001-2005 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
#-------------------------------------------------------------------
# ---- BEGIN DO NOT EDIT ----
use strict;
use lib '../lib';
use Getopt::Long;
use WebGUI::Session;
# ---- END DO NOT EDIT ----
use Test::More tests => 31; # increment this value for each test you create
use WebGUI::SQL;
initialize(); # this line is required
# read
ok(my $sth = WebGUI::SQL->read("select * from settings"), "read()");
# array
my @row = $sth->array;
is(@row, 2, "array()");
# getColumnNames
my @columnNames = $sth->getColumnNames;
ok($columnNames[0] eq "name" && $columnNames[1] eq "value", "geColumnNames()");
# hash
is(scalar($sth->hash), "2/8", "hash()");
# hashRef
is(scalar(%{$sth->hashRef}), "2/8", "hashRef()");
# rows
ok($sth->rows > 1, "rows()");
# finish
ok($sth->finish, "finish()");
# unconditionalRead
ok(my $sth = WebGUI::SQL->unconditionalRead("select * from tableThatDoesntExist"), "unconditionalRead()");
# errorCode
is($sth->errorCode, "1146" ,"errorCode()");
# errorMessage
ok($sth->errorMessage =~ m/Table .*\.tablethatdoesntexist. doesn.t exist/ , "errorMessage()");
$sth->finish;
# quote
is(quote("that's great"), "'that\\\'s great'", "quote()");
# quoteAndJoin
my @quoteAndJoin = ("that's great", '"Howdy partner!"');
is(quoteAndJoin(\@quoteAndJoin), "'that\\\'s great','\\\"Howdy partner!\\\"'", "quoteAndJoin()");
# beginTransaction
SKIP: {
skip("Don't know how to test beginTransaction.",1);
ok(undef,"beginTransaction()");
}
# commit
SKIP: {
skip("Don't know how to test commit",1);
ok(undef, "commit()");
}
# rollback
SKIP: {
skip("Don't know how to test rollback()",1);
ok(undef, "rollback()");
}
# prepare
ok(my $sth = WebGUI::SQL->prepare("select value from settings where name=?"), "prepare()");
# execute
$sth->execute(['showDebug']);
is($sth->errorCode, undef, "execute()");
$sth->finish;
# quickArray
my ($value) = WebGUI::SQL->quickArray("select value from settings where name='authMethod'");
ok($value, "quickArray()");
# write
WebGUI::SQL->write("delete from incrementer where incrementerId='theBigTest'"); # clean up previous failures
WebGUI::SQL->write("insert into incrementer (incrementerId, nextValue) values ('theBigTest',25)");
my ($value) = WebGUI::SQL->quickArray("select nextValue from incrementer where incrementerId='theBigTest'");
is($value, 25, 'write()');
# quickCSV
is(WebGUI::SQL->quickCSV("select * from incrementer where incrementerId='theBigTest'"), "incrementerId,nextValue\ntheBigTest,25\n", "quickCSV()");
# quickHash
my %quickHash = WebGUI::SQL->quickHash("select * from incrementer where incrementerId='theBigTest'");
is($quickHash{nextValue}, 25, "quickHash()");
# quickHash
my $quickHashRef = WebGUI::SQL->quickHashRef("select * from incrementer where incrementerId='theBigTest'");
is($quickHashRef->{nextValue}, 25, "quickHashRef()");
# quickTab
is(WebGUI::SQL->quickTab("select * from incrementer where incrementerId='theBigTest'"), "incrementerId\tnextValue\ntheBigTest\t25\n", "quickCSV()");
# buildArray
my ($buildArray) = WebGUI::SQL->buildArray("select nextValue from incrementer where incrementerId='theBigTest'");
is($buildArray, 25, "buildArray()");
# buildArrayRef
my $buildArrayRef = WebGUI::SQL->buildArrayRef("select nextValue from incrementer where incrementerId='theBigTest'");
is($buildArrayRef->[0], 25, "buildArrayRef()");
# buildHash
my %buildHash = WebGUI::SQL->buildHash("select incrementerId,nextValue from incrementer where incrementerId='theBigTest'");
is($buildHash{theBigTest}, 25, "buildHash()");
# buildHashRef
my $buildHashRef = WebGUI::SQL->buildHashRef("select incrementerId,nextValue from incrementer where incrementerId='theBigTest'");
is($buildHashRef->{theBigTest}, 25, "buildHashRef()");
# getNextId
is(getNextId('theBigTest'), 25, "getNextId()");
WebGUI::SQL->write("delete from incrementer where incrementerId='theBigTest'");
# setRow
my $setRowId = WebGUI::SQL->setRow("incrementer","incrementerId",{incrementerId=>"new", nextValue=>47});
ok($setRowId ne "", "setRow() - return ID");
my ($setRowResult) = WebGUI::SQL->quickArray("select nextValue from incrementer where incrementerId=".quote($setRowId));
is($setRowResult, 47, "setRow() - set data");
# getRow
my $getRow = WebGUI::SQL->getRow("incrementer","incrementerId",$setRowId);
is($getRow->{nextValue}, 47, "getRow()");
WebGUI::SQL->write("delete from incrementer where incrementerId=".quote($setRowId));
cleanup(); # this line is required
# ---- DO NOT EDIT BELOW THIS LINE -----
sub initialize {
$|=1; # disable output buffering
my $configFile;
GetOptions(
'configFile=s'=>\$configFile
);
exit 1 unless ($configFile);
WebGUI::Session::open("..",$configFile);
}
sub cleanup {
WebGUI::Session::close();
}