SVCS - Русская документация
Загрузка...
Поиск...
Не найдено
IntUndoCommandTest.hxx
См. документацию.
1
23
24#pragma once
25
26#include <gtest/gtest.h>
27#include <memory>
28#include <vector>
29#include <string>
30#include <filesystem>
31
34
49 */
50namespace svcs::test::cli::utils {
51
56
76class UndoCommandTest : public ::testing::Test {
77protected:
87 void SetUp() override;
88
98 void TearDown() override;
99
111 void createTestFile(const std::string& filename, const std::string& content) const;
112
122 void createTestDirectory(const std::string& dirname) const;
123
133 void stageFiles(const std::vector<std::string>& files);
134
148 bool createTestCommit(const std::string& message);
149
163 static bool containsMessage(const std::vector<Event>& notifications, const std::string& message);
164
178 static int countMessages(const std::vector<Event>& notifications, const std::string& message);
179
191 static void simulateUserInput(const std::string& input);
192
200 std::shared_ptr<MockSubject> mockEventBus;
201
209 std::shared_ptr<RepositoryManager> repoManager;
210
218 std::unique_ptr<UndoCommand> command;
219
227 std::filesystem::path testDir;
228};
229
230}
Объявление класса UndoCommand для отмены изменений.
Команда для возврата состояния репозитория к предыдущему коммиту.
Определения UndoCommand.hxx:40
Управляет всеми физическими операциями с файлами и директориями в репозитории SVCS.
Определения RepositoryManager.hxx:78
Mock реализация ISubject для тестирования событийно-ориентированных компонентов.
Определения MockSubject.hxx:40
Google Test фикстур для запуска интеграционных тестов UndoCommand.
Определения IntUndoCommandTest.hxx:49
std::unique_ptr< UndoCommand > command
Уникальный указатель на тестируемую команду.
Определения IntUndoCommandTest.hxx:126
bool createTestCommit(const std::string &message)
Создает новый коммит (сохранение) с указанным сообщением.
Определения IntUndoCommandTest.cxx:66
std::shared_ptr< MockSubject > mockEventBus
Общий указатель на mock шину событий (наблюдатель/имитатор ввода).
Определения IntUndoCommandTest.hxx:116
void SetUp() override
Настраивает тестовое окружение перед каждым тестом.
Определения IntUndoCommandTest.cxx:23
static bool containsMessage(const std::vector< Event > &notifications, const std::string &message)
Проверяет, существует ли конкретное сообщение (подстрока) в любом уведомлении о событии.
Определения IntUndoCommandTest.cxx:71
void createTestDirectory(const std::string &dirname) const
Создает тестовую директорию во временном расположении.
Определения IntUndoCommandTest.cxx:56
static int countMessages(const std::vector< Event > &notifications, const std::string &message)
Подсчитывает количество вхождений конкретного сообщения (подстроки) во всех уведомлениях о событиях.
Определения IntUndoCommandTest.cxx:78
std::shared_ptr< RepositoryManager > repoManager
Общий указатель на компонент основной логики репозитория.
Определения IntUndoCommandTest.hxx:121
void stageFiles(const std::vector< std::string > &files)
Индексирует список файлов с использованием логики индексации RepositoryManager.
Определения IntUndoCommandTest.cxx:60
std::filesystem::path testDir
Путь к временной тестовой директории репозитория.
Определения IntUndoCommandTest.hxx:131
static void simulateUserInput(const std::string &input)
Имитирует пользовательский ввод, помещая строку в очередь ввода mock шины событий.
Определения IntUndoCommandTest.cxx:85
void TearDown() override
Очищает тестовое окружение после каждого теста.
Определения IntUndoCommandTest.cxx:44
void createTestFile(const std::string &filename, const std::string &content) const
Создает тестовый файл с указанным содержимым во временной директории.
Определения IntUndoCommandTest.cxx:50
Mock реализация интерфейса ISubject для целей модульного тестирования.
Служебные классы и тестовые фикстуры для тестирования CLI команд.
Определения ClearCommandTest.cxx:16
Структура, описывающая событие, опубликованное ядром VCS.
Определения Event.hxx:27