♻️ Refactor DBBackuptest

Split each test in a dedicated method
This commit is contained in:
Pierre Goiffon
2022-01-12 09:41:31 +01:00
parent 0ee6c60e94
commit 693a861e7d

View File

@@ -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);
}
}