Viewing File: /usr/local/cpanel/3rdparty/wpinstaller/tests/DatabaseTest.php

<?php
declare(strict_types=1);

final class DatabaseTest extends PHPUnit\Framework\TestCase {

    public function testCanBeInstantiatedWithFake() {
        $api = new WpInstaller\CpanelApi();
        if (!$api->fake_cpanel_api) {
            $this->markTestSkipped('Only runs with FAKE_CPANEL_API=1');
        }

        $this->assertInstanceOf(
            WpInstaller\Database::class,
            new WpInstaller\Database('foo', $api),
            'Successfully instantiated WpInstaller\Database object'
        );
    }

    public function testDbLifeCycle () {
        $db = new WpInstaller\Database('foo', ( new WpInstaller\CpanelApi() ));

        $this->assertEmpty($db->info(), 'db->info starts empty');

        $db->provision();

        $keys = ['database_name', 'user_name', 'password', 'host', 'table_prefix'];
        $info = $db->info();
        foreach ($keys as $key) {
            $this->assertArrayHasKey($key, $info, "db->info has $key");
        }

        $mysqli_connection = new mysqli(
            $info['host'],
            $info['user_name'],
            $info['password'],
            $info['database_name']
        );

        if (mysqli_connect_errno()) {
            // Just some debugging if we find it isnt empty
            var_dump(mysqli_connect_error());
        }

        $this->assertEmpty(mysqli_connect_errno(), 'No database connection errors');

        $db->rollback();

        $this->assertEmpty($db->info(), 'db->info is empty after rollback');
    }
}
Back to Directory File Manager