Fix phpunit

This commit is contained in:
Laurent Destailleur
2023-08-04 17:26:38 +02:00
parent bd9bed835a
commit 216ab4c190

View File

@@ -142,58 +142,61 @@ class PgsqlTest extends PHPUnit\Framework\TestCase
$langs=$this->savlangs;
$db=$this->savdb;
// Create a dummy db handler for pgsql
$tmpdb = new DoliDBPgsql('pqsql', 'host', 'user', 'pass');
/*
$sql = "CREATE SEQUENCE __DATABASE__.llx_c_paiement_id_seq OWNED BY llx_c_paiement.id;";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "CREATE SEQUENCE __DATABASE__.llx_c_paiement_id_seq OWNED BY llx_c_paiement.id;");
*/
$sql = "ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer USING state_id::integer;";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "-- ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer USING state_id::integer; replaced by --\nALTER TABLE llx_bank_account ALTER COLUMN state_id TYPE integer USING state_id::integer;");
$sql="ALTER TABLE llx_table RENAME TO llx_table_new;";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "ALTER TABLE llx_table RENAME TO llx_table_new;");
$sql="ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol;";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0';");
$sql="ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60);";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "-- ALTER TABLE llx_table CHANGE COLUMN oldname newname varchar(60); replaced by --\nALTER TABLE llx_table RENAME COLUMN oldname TO newname");
$sql="ALTER TABLE llx_table DROP COLUMN oldname;";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, $sql);
$sql="ALTER TABLE llx_table MODIFY name varchar(60);";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "-- ALTER TABLE llx_table MODIFY name varchar(60); replaced by --\nALTER TABLE llx_table ALTER COLUMN name TYPE varchar(60);");
// Create a constraint
$sql='ALTER TABLE llx_tablechild ADD CONSTRAINT fk_tablechild_fk_fieldparent FOREIGN KEY (fk_fieldparent) REFERENCES llx_tableparent (rowid)';
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, $sql.' DEFERRABLE INITIALLY IMMEDIATE;');
// Test GROUP_CONCAT (without SEPARATOR)
$sql="SELECT a.b, GROUP_CONCAT(a.c) FROM table GROUP BY a.b";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "SELECT a.b, STRING_AGG(a.c, ',') FROM table GROUP BY a.b", 'Test GROUP_CONCAT (without SEPARATOR)');
// Test GROUP_CONCAT (with SEPARATOR)
$sql="SELECT a.b, GROUP_CONCAT(a.c SEPARATOR ',') FROM table GROUP BY a.b";
$result=DoliDBPgsql::convertSQLFromMysql($sql);
$result=$tmpdb->convertSQLFromMysql($sql);
print __METHOD__." result=".$result."\n";
$this->assertEquals($result, "SELECT a.b, STRING_AGG(a.c, ',') FROM table GROUP BY a.b", 'Test GROUP_CONCAT (with SEPARATOR)');