SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
Класс svcs::test::cli::utils::UndoCommandTest

Google Test фикстур для запуска интеграционных тестов UndoCommand. Подробнее...

#include <IntUndoCommandTest.hxx>

Граф наследования:svcs::test::cli::utils::UndoCommandTest:

Защищенные члены

void SetUp () override
 Настраивает тестовое окружение перед каждым тестом.
void TearDown () override
 Очищает тестовое окружение после каждого теста.
void createTestFile (const std::string &filename, const std::string &content) const
 Создает тестовый файл с указанным содержимым во временной директории.
void createTestDirectory (const std::string &dirname) const
 Создает тестовую директорию во временном расположении.
void stageFiles (const std::vector< std::string > &files)
 Индексирует список файлов с использованием логики индексации RepositoryManager.
bool createTestCommit (const std::string &message)
 Создает новый коммит (сохранение) с указанным сообщением.

Защищенные статические члены

static bool containsMessage (const std::vector< Event > &notifications, const std::string &message)
 Проверяет, существует ли конкретное сообщение (подстрока) в любом уведомлении о событии.
static int countMessages (const std::vector< Event > &notifications, const std::string &message)
 Подсчитывает количество вхождений конкретного сообщения (подстроки) во всех уведомлениях о событиях.
static void simulateUserInput (const std::string &input)
 Имитирует пользовательский ввод, помещая строку в очередь ввода mock шины событий.

Защищенные данные

std::shared_ptr< MockSubjectmockEventBus
 Общий указатель на mock шину событий (наблюдатель/имитатор ввода).
std::shared_ptr< RepositoryManagerrepoManager
 Общий указатель на компонент основной логики репозитория.
std::unique_ptr< UndoCommandcommand
 Уникальный указатель на тестируемую команду.
std::filesystem::path testDir
 Путь к временной тестовой директории репозитория.

Подробное описание

Google Test фикстур для запуска интеграционных тестов UndoCommand.

Этот фикстур предоставляет необходимую инфраструктуру для тестирования команды undo:

  • SetUp/TearDown: Управление временной директорией репозитория SVCS.
  • Основные компоненты: Экземпляры MockSubject (для шины событий/вывода/имитации ввода) и RepositoryManager (для основной логики).
  • Вспомогательные методы: Упрощают манипуляцию файлами, индексацию, коммиты и проверку уведомлений.

Методы

◆ containsMessage()

bool svcs::test::cli::utils::UndoCommandTest::containsMessage ( const std::vector< Event > & notifications,
const std::string & message )
staticprotected

Проверяет, существует ли конкретное сообщение (подстрока) в любом уведомлении о событии.

Аргументы
notificationsСписок захваченных событий.
messageПодстрока для поиска.
Возвращает
true если сообщение найдено в любом уведомлении, false в противном случае.

◆ countMessages()

int svcs::test::cli::utils::UndoCommandTest::countMessages ( const std::vector< Event > & notifications,
const std::string & message )
staticprotected

Подсчитывает количество вхождений конкретного сообщения (подстроки) во всех уведомлениях о событиях.

Аргументы
notificationsСписок захваченных событий.
messageПодстрока для подсчета.
Возвращает
Количество событий, содержащих подстроку.

◆ createTestCommit()

bool svcs::test::cli::utils::UndoCommandTest::createTestCommit ( const std::string & message)
protected

Создает новый коммит (сохранение) с указанным сообщением.

Внутренне индексирует файлы (если необходимо) и вызывает логику коммита менеджера репозитория.

Аргументы
messageСообщение коммита.
Возвращает
true если коммит успешен, false в противном случае.

◆ createTestDirectory()

void svcs::test::cli::utils::UndoCommandTest::createTestDirectory ( const std::string & dirname) const
protected

Создает тестовую директорию во временном расположении.

Аргументы
dirnameОтносительный путь/имя директории.

◆ createTestFile()

void svcs::test::cli::utils::UndoCommandTest::createTestFile ( const std::string & filename,
const std::string & content ) const
protected

Создает тестовый файл с указанным содержимым во временной директории.

Аргументы
filenameОтносительный путь/имя файла.
contentСодержимое для записи в файл.

◆ SetUp()

void svcs::test::cli::utils::UndoCommandTest::SetUp ( )
overrideprotected

Настраивает тестовое окружение перед каждым тестом.

Инициализирует компоненты, создает временную директорию и инициализирует репозиторий.

◆ simulateUserInput()

void svcs::test::cli::utils::UndoCommandTest::simulateUserInput ( const std::string & input)
staticprotected

Имитирует пользовательский ввод, помещая строку в очередь ввода mock шины событий.

Это критически важно для тестирования подтверждающего запроса в UndoCommand.

Аргументы
inputСтрока для имитации пользовательского ввода (например, "y\n" или "n\n").

◆ stageFiles()

void svcs::test::cli::utils::UndoCommandTest::stageFiles ( const std::vector< std::string > & files)
protected

Индексирует список файлов с использованием логики индексации RepositoryManager.

Аргументы
filesВектор имен файлов для индексации.

◆ TearDown()

void svcs::test::cli::utils::UndoCommandTest::TearDown ( )
overrideprotected

Очищает тестовое окружение после каждого теста.

Очищает временную директорию и восстанавливает рабочий путь.


Объявления и описания членов классов находятся в файлах: