Files
yaze/test/framework/mock_renderer.h
2025-12-22 14:53:35 -05:00

56 lines
2.0 KiB
C++

#ifndef YAZE_TEST_FRAMEWORK_MOCK_RENDERER_H_
#define YAZE_TEST_FRAMEWORK_MOCK_RENDERER_H_
#include "app/gfx/backend/irenderer.h"
#include "gmock/gmock.h"
namespace yaze {
namespace test {
class MockRenderer : public gfx::IRenderer {
public:
MockRenderer() {
using ::testing::Return;
ON_CALL(*this, CreateTexture)
.WillByDefault(Return(DummyTextureHandle()));
ON_CALL(*this, CreateTextureWithFormat)
.WillByDefault(Return(DummyTextureHandle()));
ON_CALL(*this, LockTexture).WillByDefault(Return(true));
ON_CALL(*this, GetBackendRenderer).WillByDefault(Return(nullptr));
}
MOCK_METHOD(bool, Initialize, (SDL_Window* window), (override));
MOCK_METHOD(void, Shutdown, (), (override));
MOCK_METHOD(gfx::TextureHandle, CreateTexture, (int width, int height), (override));
MOCK_METHOD(gfx::TextureHandle, CreateTextureWithFormat,
(int width, int height, uint32_t format, int access), (override));
MOCK_METHOD(void, UpdateTexture, (gfx::TextureHandle texture, const gfx::Bitmap& bitmap), (override));
MOCK_METHOD(void, DestroyTexture, (gfx::TextureHandle texture), (override));
MOCK_METHOD(bool, LockTexture, (gfx::TextureHandle texture, SDL_Rect* rect, void** pixels, int* pitch), (override));
MOCK_METHOD(void, UnlockTexture, (gfx::TextureHandle texture), (override));
MOCK_METHOD(void, Clear, (), (override));
MOCK_METHOD(void, Present, (), (override));
MOCK_METHOD(void, RenderCopy, (gfx::TextureHandle texture, const SDL_Rect* srcrect, const SDL_Rect* dstrect), (override));
MOCK_METHOD(void, SetRenderTarget, (gfx::TextureHandle texture), (override));
MOCK_METHOD(void, SetDrawColor, (SDL_Color color), (override));
MOCK_METHOD(void*, GetBackendRenderer, (), (override));
private:
gfx::TextureHandle DummyTextureHandle() {
return reinterpret_cast<gfx::TextureHandle>(&dummy_texture_);
}
int dummy_texture_ = 0;
};
} // namespace test
} // namespace yaze
#endif // YAZE_TEST_FRAMEWORK_MOCK_RENDERER_H_