phpbb/tests/console/searchindex/delete_test.php
2022-12-11 21:22:01 +01:00

92 lines
2.6 KiB
PHP

<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
use phpbb\console\command\searchindex\delete;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Tester\CommandTester;
require_once __DIR__ . '/phpbb_console_searchindex_base.php';
require_once __DIR__ . '/../../mock/search_backend_mock.php';
class phpbb_console_searchindex_delete_test extends phpbb_console_searchindex_base
{
public function get_command_tester()
{
$application = new Application();
$application->add(new delete(
$this->language,
$this->log,
$this->post_helper,
$this->search_backend_factory,
$this->state_helper,
$this->user
));
$command = $application->find('searchindex:delete');
return new CommandTester($command);
}
public function test_delete()
{
$command_tester = $this->get_command_tester();
$command_tester->execute([
'search-backend' => 'search_backend_mock',
]);
$this->assertEquals(Command::SUCCESS, $command_tester->getStatusCode());
$this->assertStringContainsString('CLI_SEARCHINDEX_DELETE_SUCCESS', $command_tester->getDisplay());
}
public function test_delete_when_search_backend_dont_exist()
{
$command_tester = $this->get_command_tester();
$command_tester->execute([
'search-backend' => 'missing',
]);
$this->assertEquals(Command::FAILURE, $command_tester->getStatusCode());
$this->assertStringContainsString('CLI_SEARCHINDEX_BACKEND_NOT_FOUND', $command_tester->getDisplay());
}
public function test_delete_when_action_in_progress()
{
$this->config['search_indexing_state'] = ['not', 'empty'];
$command_tester = $this->get_command_tester();
$command_tester->execute([
'search-backend' => 'search_backend_mock',
]);
$this->assertEquals(Command::FAILURE, $command_tester->getStatusCode());
$this->assertStringContainsString('CLI_SEARCHINDEX_ACTION_IN_PROGRESS', $command_tester->getDisplay());
$this->config['search_indexing_state'] = [];
}
public function test_delete_when_search_backend_not_available()
{
$command_tester = $this->get_command_tester();
$command_tester->execute([
'search-backend' => 'search_backend_mock_not_available',
]);
$this->assertEquals(Command::FAILURE, $command_tester->getStatusCode());
$this->assertStringContainsString('CLI_SEARCHINDEX_BACKEND_NOT_AVAILABLE', $command_tester->getDisplay());
}
}