diff --git a/test/setup/DBBackupTest.php b/test/setup/DBBackupTest.php index 99452f888..7f767f439 100644 --- a/test/setup/DBBackupTest.php +++ b/test/setup/DBBackupTest.php @@ -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); } }