mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
♻️ Refactor DBBackuptest
Split each test in a dedicated method
This commit is contained in:
@@ -14,43 +14,76 @@ use utils;
|
||||
*/
|
||||
class DBBackupTest extends ItopTestCase
|
||||
{
|
||||
/**
|
||||
* @throws \CoreException
|
||||
* @throws \MySQLException
|
||||
* @throws \ConfigException
|
||||
*/
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
require_once(APPROOT.'core/config.class.inc.php');
|
||||
require_once(APPROOT.'setup/backup.class.inc.php');
|
||||
require_once(APPROOT.'core/cmdbsource.class.inc.php'); // DBBackup dependency
|
||||
|
||||
// We need a connection to the DB, so let's open it !
|
||||
// We are using the default config file... as the server might not be configured for all the combination we are testing
|
||||
// For example dev env and ci env won't accept TLS connection
|
||||
$oConfigOnDisk = utils::GetConfig();
|
||||
CMDBSource::InitFromConfig($oConfigOnDisk);
|
||||
}
|
||||
|
||||
/**
|
||||
* No TLS connection = no additional CLI args !
|
||||
*
|
||||
* @throws \CoreException
|
||||
* @throws \ConfigException
|
||||
* @throws \MySQLException
|
||||
*/
|
||||
public function testGetMysqlCliTlsOptions()
|
||||
public function testGetMysqlCliTlsOptionsNoTls()
|
||||
{
|
||||
$oConfigToTest = utils::GetConfig();
|
||||
|
||||
// No TLS connection = no additional CLI args !
|
||||
$oConfigToTest->Set('db_tls.enabled', false);
|
||||
$sCliArgsNoTls = DBBackup::GetMysqlCliTlsOptions($oConfigToTest);
|
||||
|
||||
$this->assertEmpty($sCliArgsNoTls);
|
||||
}
|
||||
|
||||
// We need a connection to the DB, so let's open it !
|
||||
$oConfigOnDisk = utils::GetConfig();
|
||||
CMDBSource::InitFromConfig($oConfigOnDisk);
|
||||
|
||||
// TLS connection configured = we need one CLI arg
|
||||
/**
|
||||
* TLS connection configured = we need one CLI arg
|
||||
*
|
||||
* @return void
|
||||
* @throws \ConfigException
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function testGetMysqlCliTlsOptionsWithTlsNoCa()
|
||||
{
|
||||
$oConfigToTest = utils::GetConfig();
|
||||
$oConfigToTest->Set('db_tls.enabled', true);
|
||||
$sCliArgsMinCfg = DBBackup::GetMysqlCliTlsOptions($oConfigToTest);
|
||||
|
||||
// depending on the MySQL version, we would have `--ssl` or `--ssl-mode=VERIFY_CA`
|
||||
$this->assertStringStartsWith(' --ssl', $sCliArgsMinCfg);
|
||||
}
|
||||
|
||||
// TLS connection configured + CA option = we need multiple CLI args
|
||||
/**
|
||||
* TLS connection configured + CA option = we need multiple CLI args
|
||||
*
|
||||
* @return void
|
||||
* @throws \ConfigException
|
||||
* @throws \CoreException
|
||||
*/
|
||||
public function testGetMysqlCliTlsOptionsWithTlsAndCa()
|
||||
{
|
||||
$oConfigToTest = utils::GetConfig();
|
||||
$sTestCa = 'my_test_ca';
|
||||
|
||||
$oConfigToTest->Set('db_tls.enabled', true);
|
||||
$oConfigToTest->Set('db_tls.ca', $sTestCa);
|
||||
$sCliArgsCapathCfg = DBBackup::GetMysqlCliTlsOptions($oConfigToTest);
|
||||
$this->assertStringStartsWith(' --ssl', $sCliArgsMinCfg);
|
||||
|
||||
$this->assertStringStartsWith(' --ssl', $sCliArgsCapathCfg);
|
||||
$this->assertStringEndsWith('--ssl-ca='.DBBackup::EscapeShellArg($sTestCa), $sCliArgsCapathCfg);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user