wpdo/tests/WPDOTest.php
2023-11-17 01:52:08 +01:00

111 lines
2.6 KiB
PHP

<?php
use PhangoApp\WPDO\WPDO;
use PhangoApp\WPDO\WTable;
use PhangoApp\PhaUtils\Utils;
use PHPUnit\Framework\TestCase;
include("vendor/autoload.php");
include("libraries/Utils.php");
Utils::load_config('config_test', 'settings');
final class WPDOTest extends TestCase {
public function testConnect()
{
global $pdo;
$table=new WTable('table_test', ['name', 'last_name', 'type']);
$pdo=new WPDO($table);
$this->assertTrue($pdo->connect());
}
public function testCreateTable()
{
global $pdo;
$sql_table="DROP TABLE IF EXISTS table_test;
CREATE TABLE table_test (
`name` VARCHAR(255) NOT NULL default '',
`last_name` VARCHAR(255) NOT NULL default '',
`type` INT NOT NULL
);";
$this->assertTrue($pdo->query($sql_table, []));
}
/**
* @depends testCreateTable
*/
public function testInsert() {
global $pdo;
$this->assertEquals('table_test', $pdo->table->name);
$this->assertTrue($pdo->insert(['name' => 'first', 'last_name' => 'last', 'type' => 1]));
}
/**
* @depends testInsert
*/
public function testSelect() {
global $pdo;
$this->assertEquals('table_test', $pdo->table->name);
$this->assertTrue($pdo->select(['name'], 'WHERE name=? AND type=?', ['first', 1]));
$arr_result=$pdo->sth->fetchAll();
$this->assertEquals([['name' => 'first', 0 => 'first']], $arr_result);
$this->assertEquals([['name' => 'first', 0 => 'first']], $pdo->select_to_array(['name'], 'WHERE name=? AND type=?', ['first', 1]));
$this->assertEquals(['name' => 'first', 0 => 'first'], $pdo->select_a_row(['name'], 'WHERE name=? AND type=?', ['first', 1]));
$this->assertEquals(1, $pdo->select_count('WHERE name=?', ['first']));
}
/**
* @depends testInsert
*/
public function testUpdate() {
global $pdo;
$this->assertTrue($pdo->update(['name'], ['first_updated'], 'WHERE name=?', ['first']));
$this->assertTrue($pdo->select(['name'], 'WHERE name=? AND type=?', ['first_updated', 1]));
$arr_result=$pdo->sth->fetchAll();
$this->assertEquals([['name' => 'first_updated', 0 => 'first_updated']], $arr_result);
}
/**
* @depends testCreateTable
*/
public function testDropTable()
{
global $pdo;
$this->assertTrue($pdo->query('drop table table_test', []));
}
}