Add MockRom class for unit testing ROM interactions

This commit is contained in:
scawful
2025-03-03 17:08:24 -05:00
parent dc88574152
commit b707345a06
2 changed files with 29 additions and 13 deletions

28
test/mocks/mock_rom.h Normal file
View File

@@ -0,0 +1,28 @@
#ifndef YAZE_TEST_MOCKS_MOCK_ROM_H
#define YAZE_TEST_MOCKS_MOCK_ROM_H
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "test/testing.h"
namespace yaze {
namespace test {
class MockRom : public Rom {
public:
MOCK_METHOD(absl::Status, WriteHelper, (const WriteAction&), (override));
MOCK_METHOD2(ReadHelper, absl::Status(uint8_t&, int));
MOCK_METHOD2(ReadHelper, absl::Status(uint16_t&, int));
MOCK_METHOD2(ReadHelper, absl::Status(std::vector<uint8_t>&, int));
MOCK_METHOD(absl::StatusOr<uint8_t>, ReadByte, (int));
MOCK_METHOD(absl::StatusOr<uint16_t>, ReadWord, (int));
MOCK_METHOD(absl::StatusOr<uint32_t>, ReadLong, (int));
};
} // namespace test
} // namespace yaze
#endif

View File

@@ -5,6 +5,7 @@
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "mocks/mock_rom.h"
#include "test/testing.h"
namespace yaze {
@@ -19,19 +20,6 @@ const static std::vector<uint8_t> kMockRomData = {
0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
};
class MockRom : public Rom {
public:
MOCK_METHOD(absl::Status, WriteHelper, (const WriteAction&), (override));
MOCK_METHOD2(ReadHelper, absl::Status(uint8_t&, int));
MOCK_METHOD2(ReadHelper, absl::Status(uint16_t&, int));
MOCK_METHOD2(ReadHelper, absl::Status(std::vector<uint8_t>&, int));
MOCK_METHOD(absl::StatusOr<uint8_t>, ReadByte, (int));
MOCK_METHOD(absl::StatusOr<uint16_t>, ReadWord, (int));
MOCK_METHOD(absl::StatusOr<uint32_t>, ReadLong, (int));
};
class RomTest : public ::testing::Test {
protected:
Rom rom_;