. */ namespace SP\Tests\Services\Config; use PHPUnit\Framework\TestCase; use SP\Config\Config; use SP\Config\ConfigData; use SP\Services\Config\ConfigBackupService; use function SP\Tests\getResource; use function SP\Tests\recreateDir; use function SP\Tests\saveResource; use function SP\Tests\setupContext; /** * Class ConfigBackupServiceTest * * @package SP\Tests\Services\Config */ class ConfigBackupServiceTest extends TestCase { protected static $currentConfig; public static function setUpBeforeClass() { self::$currentConfig = getResource('config', 'config.xml'); } /** * This method is called after the last test of this test class is run. */ public static function tearDownAfterClass() { saveResource('config', 'config.xml', self::$currentConfig); recreateDir(CACHE_PATH); } /** * @throws \DI\DependencyException * @throws \DI\NotFoundException * @throws \SP\Core\Context\ContextException */ public function testBackup() { $dic = setupContext(); $configData = new ConfigData(); $configData->setConfigVersion(uniqid()); $service = $dic->get(ConfigBackupService::class); $service->backup($configData); $this->assertTrue(true); return $configData; } /** * @depends testBackup * * @param ConfigData $configData * * @throws \DI\DependencyException * @throws \DI\NotFoundException * @throws \SP\Core\Context\ContextException * @throws \SP\Services\ServiceException * @throws \SP\Storage\File\FileException */ public function testRestore(ConfigData $configData) { $dic = setupContext(); $service = $dic->get(ConfigBackupService::class); $data = $service->restore(); $this->assertEquals($configData->getConfigVersion(), $data->getConfigVersion()); $config = $dic->get(Config::class); $this->assertEquals($data->getConfigHash(), $config->loadConfigFromFile()->getConfigHash()); } }