|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/irtiweb/CATS/src/OpenCATS/Tests/IntegrationTests/ |
Upload File : |
<?php
namespace OpenCATS\Tests\IntegrationTests;
use \OpenCATS\Tests\IntegrationTests\DatabaseTestCase;
use DatabaseConnection;
class DatabaseConnectionTest extends DatabaseTestCase
{
function testMakeQueryString()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('test string', "'test string'"),
array('te\st', "'te\\\st'"),
array('te\s\t', "'te\\\s\\\\t'"),
array('te\'st', "'te\\'st'"),
array('\'; DELETE FROM test_table; SELECT \'', "'\'; DELETE FROM test_table; SELECT \''"),
array('te\'s`t', "'te\\'s`t'")
);
foreach ($strings as $key => $value)
{
$this->assertSame(
$db->makeQueryString($value[0]),
$value[1],
$value[0] . ' => ' . $value[1]
);
}
}
function testEscapeString()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('test string', "test string"),
array('te\st', "te\\\st"),
array('te\s\t', "te\\\s\\\\t"),
array('te\'st', "te\\'st"),
array('\'; DELETE FROM test_table; SELECT \'', "\'; DELETE FROM test_table; SELECT \'"),
array('te\'s`t', "te\\'s`t")
);
foreach ($strings as $key => $value)
{
$this->assertSame(
$db->escapeString($value[0]),
$value[1],
$value[0] . ' => ' . $value[1]
);
}
}
function testMakeQueryStringOrNULL()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('test string', "'test string'"),
array('te\st', "'te\\\st'"),
array('te\s\t', "'te\\\s\\\\t'"),
array('te\'st', "'te\\'st'"),
array('\'; DELETE FROM test_table; SELECT \'', "'\'; DELETE FROM test_table; SELECT \''"),
array('te\'s`t', "'te\\'s`t'"),
array(' ', 'NULL'),
array(' ', 'NULL'),
array(' ', 'NULL'),
array('', 'NULL')
);
foreach ($strings as $key => $value)
{
$this->assertSame(
$db->makeQueryStringOrNULL($value[0]),
$value[1],
$value[0] . ' => ' . $value[1]
);
}
}
function testMakeQueryInteger()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('1.5', 1),
array('not-a-double', 0),
array('1.999', 1),
array('1notastring', 1),
array('-22356', -22356)
);
foreach ($strings as $key => $value)
{
$this->assertSame(
$db->makeQueryInteger($value[0]),
$value[1],
$value[0] . ' => ' . $value[1]
);
}
}
function testMakeQueryIntegerOrNULL()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('1.5', 1),
array('not-a-double', 0),
array('1.999', 1),
array('1notastring', 1),
array('-22356', -22356),
array('-1', 'NULL')
);
foreach ($strings as $key => $value)
{
$this->assertSame(
$db->makeQueryIntegerOrNULL($value[0]),
$value[1],
$value[0] . ' => ' . $value[1]
);
}
}
function testMakeQueryDouble()
{
$db = DatabaseConnection::getInstance();
$strings = array(
array('1.5', '1.5'),
array('not-a-double', '0.0'),
array('1.99999999999999', '2', 2),
array('1.80123', '1.80', 2),
array('1.99999999999999', '1.99999999999999'),
);
foreach ($strings as $key => $value)
{
if (isset($value[2]))
{
$queryDouble = $db->makeQueryDouble($value[0], $value[2]);
}
else
{
$queryDouble = $db->makeQueryDouble($value[0]);
}
$this->assertSame(
$queryDouble,
$value[1],
$queryDouble . ' should be ' . $value[1]
);
}
}
function testQuery()
{
$db = DatabaseConnection::getInstance();
$queryResult = $db->query('INSERT INTO installtest (id) VALUES(35)');
$this->assertNotSame(
$queryResult,
false,
'INSERT query should succeed'
);
$queryResult = $db->query('SELECT * FROM installtest LIMIT 1');
$this->assertNotSame(
$queryResult,
false,
'SELECT query should succeed'
);
$this->assertEquals(
mysql_num_rows($queryResult),
1,
'1 row should be returned'
);
$this->assertTrue(
!$db->isEOF(),
'EOF should not be received'
);
$queryResult = $db->query('UPDATE installtest SET id = 34 WHERE id = 35');
$this->assertNotSame(
$queryResult,
false,
'UPDATE query should succeed'
);
$queryResult = $db->query('DELETE FROM installtest WHERE id = 34');
$this->assertNotSame(
$queryResult,
false,
'DELETE query should succeed'
);
}
}
?>