Select Git revision
sdl_mock.hpp
sdl_mock.hpp 4.44 KiB
//------------------------------------------------------------------------------
// Project Phoenix
//
// Copyright (c) 2017-2018 RWTH Aachen University, Germany,
// Virtual Reality & Immersive Visualization Group.
//------------------------------------------------------------------------------
// License
//
// Licensed under the 3-Clause BSD License (the "License");
// you may not use this file except in compliance with the License.
// See the file LICENSE for the full text.
// You may obtain a copy of the License at
//
// https://opensource.org/licenses/BSD-3-Clause
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//------------------------------------------------------------------------------
#ifndef TESTS_SRC_MOCKS_SDL_MOCK_HPP_
#define TESTS_SRC_MOCKS_SDL_MOCK_HPP_
#include "phx/suppress_warnings.hpp"
SUPPRESS_WARNINGS_BEGIN
#include "SDL.h"
SUPPRESS_WARNINGS_END
#include "trompeloeil.hpp"
#include "mocks/sdl_mock_export.hpp"
class SDL_MOCK_EXPORT SdlMockInternal {
public:
MAKE_MOCK1(SDL_Init, int(Uint32 flags)); // NOLINT(readability/casting)
MAKE_MOCK1(SDL_InitSubSystem,
int(Uint32 flags)); // NOLINT(readability/casting)
MAKE_MOCK1(SDL_VideoInit, int(const char* driver));
MAKE_MOCK0(SDL_VideoQuit, void());
MAKE_MOCK0(SDL_GetError, const char*());
MAKE_MOCK2(SDL_GL_SetAttribute,
int(SDL_GLattr, int)); // NOLINT(readability/casting)
MAKE_MOCK6(SDL_CreateWindow,
SDL_Window*(const char*, int, int, int, int, Uint32));
MAKE_MOCK1(SDL_GL_CreateContext, SDL_GLContext(SDL_Window*));
MAKE_MOCK1(SDL_GL_DeleteContext, void(SDL_GLContext));
MAKE_MOCK1(SDL_DestroyWindow, void(SDL_Window*));
MAKE_MOCK1(SDL_QuitSubSystem, void(Uint32));
MAKE_MOCK1(SDL_GL_SwapWindow, void(SDL_Window*));
MAKE_MOCK1(SDL_PollEvent, int(SDL_Event*)); // NOLINT(readability/casting)
MAKE_MOCK3(SDL_GetWindowSize, void(SDL_Window*, int*, int*));
MAKE_MOCK1(SDL_GL_SetSwapInterval, int(int));
MAKE_MOCK1(SDL_ShowWindow, void(SDL_Window*));
MAKE_MOCK1(SDL_HideWindow, void(SDL_Window*));
};
class SDL_MOCK_EXPORT SdlMock {
public:
SdlMock() : mock_(new SdlMockInternal) {}
SdlMock(const SdlMock&) = delete;
SdlMock(SdlMock&&) = default;
~SdlMock() { delete mock_; }
SdlMock& operator=(const SdlMock&) = delete;
SdlMock& operator=(SdlMock&&) = delete;