#include "MockOutputPath.h" #include namespace { class MockFileWrapper final : public std::ostringstream { public: MockFileWrapper(std::string name, std::vector& files) : m_name(std::move(name)), m_files(files) { } ~MockFileWrapper() override { m_files.emplace_back(std::move(m_name), str()); } private: std::string m_name; std::vector& m_files; }; } // namespace MockOutputFile::MockOutputFile() = default; MockOutputFile::MockOutputFile(std::string name, std::string data) : m_name(std::move(name)), m_data(std::move(data)) { } std::unique_ptr MockOutputPath::Open(const std::string& fileName) { return std::make_unique(fileName, m_files); } const MockOutputFile* MockOutputPath::GetMockedFile(const std::string& name) const { for (const auto& file : m_files) { if (file.m_name == name) return &file; } return nullptr; }