refactoring to interfaces

This commit is contained in:
Jonas Zeunert
2018-06-14 21:09:45 +02:00
parent 6a6a10517d
commit 13b5cc0b33
18 changed files with 34798 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
cmake_minimum_required(VERSION 3.0)
project(cmake_test)
# Prepare "Catch" library for other executables
set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tests)
add_library(Catch INTERFACE)
target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR}/*)
# Make test executable
set(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/../../src/tests/input)
include_directories(${TEST_SOURCES})
include_directories(${TEST_SOURCES}/mocks)
file(GLOB SOURCES ${TEST_SOURCES}/*.cpp)
file(GLOB SOURCES ${TEST_SOURCES}/*.hpp)
add_executable(tests ${SOURCES})
target_link_libraries(tests Catch)

12012
FlippR-Driver/tests/catch.hpp Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,71 @@
/*
* TestInputDriver.cpp
*
* Created on: May 31, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/
#include "../catch.hpp"
#include "../fakeit.hpp"
#include "../../src/input/InputDriver.hpp"
#include "../../src/input/EventNotifier.h"
#define private public
using namespace fakeit;
SCENARIO("An InputDriver gets created", "[construction}")
{
GIVEN("An EventNotifier")
{
Mock<Input::EventNotifier> event_notifier_mock;
WHEN("The InputDriver gets created")
{
Input::InputDriver input_driver(&event_notifier);
THEN("It saved the EventNotifier")
{
REQUIRE(input_driver.event_notifier == &event_notifier);
}
}
}
}
SCENARIO("An EventHandler [un]registers at the driver", "[[un]register]")
{
GIVEN("An InputDriver, EventHandler and an EventNotifier")
{
Input::EventHandler event_handler = Input::EventHandlerMock();
Input::EventNotifierMock event_notifier;
Input::InputDriver input_driver(&event_notifier);
REQUIRE(event_notifier.registered = false);
WHEN("The EventHandler registers at the driver")
{
input_driver.register_event_handler(&event_handler);
THEN("The register_event_handler at the event_notifier gets called")
{
REQUIRE(event_notifier.registered == true);
}
}
WHEN("The EventHandler unregisters at the driver")
{
REQUIRE(event_notifier.registered = true);
input_driver.unregister_event_handler(&event_handler);
THEN("The unregister_event_handler at the event_notifier gets called")
{
REQUIRE(event_notifier.registered == false);
}
}
}
}

View File

@@ -0,0 +1,9 @@
/*
* tests-main.cpp
*
* Created on: May 6, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/
#define CATCH_CONFIG_MAIN
#include "../catch.hpp"

View File

@@ -0,0 +1,27 @@
/*
* EventHandlerMock.hpp
*
* Created on: May 31, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/
#ifndef SRC_TESTS_INPUT_MOCKS_EVENTHANDLERMOCK_HPP_
#define SRC_TESTS_INPUT_MOCKS_EVENTHANDLERMOCK_HPP_
namespace Input
{
class EventHandler;
class Event;
class EventHandlerMock : EventHandler
{
public:
void handle(Event& event) override
{
}
};
}
#endif /* SRC_TESTS_INPUT_MOCKS_EVENTHANDLERMOCK_HPP_ */

View File

@@ -0,0 +1,39 @@
/*
* EventNotfierMock.hpp
*
* Created on: May 31, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/
#ifndef SRC_TESTS_INPUT_MOCKS_EVENTNOTIFIERMOCK_HPP_
#define SRC_TESTS_INPUT_MOCKS_EVENTNOTIFIERMOCK_HPP_
namespace Input
{
class EventNotifier;
class EventHandler;
class EventNotifierMock : EventNotifier
{
public:
EventNotifierMock() :
registered(false)
{}
void register_event_handler(EventHandler* handler) override
{
registered = true;
}
void unregister_event_handler(EventHandler* handler) override
{
registered = false;
}
public:
bool registered;
};
}
#endif /* SRC_TESTS_INPUT_MOCKS_EVENTNOTIFIERMOCK_HPP_ */

View File

@@ -0,0 +1,34 @@
/*
* InputDriverMock.hpp
*
* Created on: May 31, 2018
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
*/
#ifndef SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_
#define SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_
namespace Input
{
class InputDriver;
class EventHandler;
class InputDriverMock : InputDriver
{
public:
InputDriverMock() :
registered(false)
{}
void register_event_handler(EventHandler* handler)
{
registered = true;
}
public:
bool registered;
};
}
#endif /* SRC_TESTS_INPUT_MOCKS_INPUTDRIVERMOCK_HPP_ */