<?php
declare(strict_types=1);
final class CpanelApiTest extends PHPUnit\Framework\TestCase {
private $cpapi;
public function setUp () {
$this->cpapi = new \WpInstaller\CpanelApi();
}
public function testGetDatabaseServerHost() {
$resp = $this->cpapi->get_server_host();
$this->assertInternalType('string', $resp, 'get_server_host returned a string');
$this->assertNotEmpty($resp, 'get_server_host returned string is not empty');
}
public function testuserLifecycleMethods() {
$uname = 'unittest_creuser';
// Test create
$resp = $this->cpapi->create_user($uname, 'mYpas2^1D');
$this->assertEquals($resp->status, 1, 'create_user status key value is 1');
// Test delete
$resp = $this->cpapi->delete_user($uname);
$this->assertEquals($resp->status, 1, 'delete_user status key value is 1');
}
public function testDatabaseLifecycleMethods() {
$dbname = 'unittest_cre_db';
// Test create
$resp = $this->cpapi->create_database($dbname);
$this->assertEquals($resp->status, 1, 'create_database status key value is 1');
// Test setting user privs
$uname = 'unittest_credbus';
$resp = $this->cpapi->create_user($uname, 'mYpas2^1D');
$this->assertEquals($resp->status, 1, 'successfully created user for testing');
$resp = $this->cpapi->set_user_privs($uname, $dbname, 'ALL');
$this->assertEquals($resp->status, 1, 'set_user_privs status key value is 1');
// Good manners to delete the test user
$this->cpapi->delete_user($uname);
// Test delete
$resp = $this->cpapi->delete_database($dbname);
$this->assertEquals($resp->status, 1, 'delete_database status key value is 1');
}
}