mirror of
https://github.com/zoriya/Bomberman.git
synced 2025-12-06 06:26:13 +00:00
45 lines
1.0 KiB
C++
45 lines
1.0 KiB
C++
//
|
|
// Created by Zoe Roux on 5/21/21.
|
|
//
|
|
|
|
#include <catch2/catch.hpp>
|
|
#include <stdexcept>
|
|
#include <Wal.hpp>
|
|
#include <Scene/Scene.hpp>
|
|
#include "Entity/Entity.hpp"
|
|
#include "Models/Callback.hpp"
|
|
|
|
using namespace WAL;
|
|
|
|
TEST_CASE("Callback basic test", "[Callback]")
|
|
{
|
|
Callback<std::string> callback;
|
|
|
|
REQUIRE_NOTHROW(callback("1"));
|
|
SECTION("Check add") {
|
|
int id = callback.addCallback([](const std::string& i) {
|
|
if (i == "Super")
|
|
throw std::runtime_error(i);
|
|
});
|
|
REQUIRE_THROWS_AS(callback("Super"), std::runtime_error);
|
|
|
|
SECTION("Check remove") {
|
|
REQUIRE(id == 0);
|
|
callback.removeCallback(id);
|
|
REQUIRE_NOTHROW(callback("Super"));
|
|
}
|
|
}
|
|
}
|
|
|
|
TEST_CASE("Callback multiple arguments", "[Callback]")
|
|
{
|
|
Callback<std::string, int, unsigned *, Entity &> callback;
|
|
|
|
callback.addCallback([](const std::string& str, int a, unsigned *value, Entity &entity) {
|
|
throw std::runtime_error("");
|
|
});
|
|
Scene scene;
|
|
Entity entity(scene, "name");
|
|
REQUIRE_THROWS_AS(callback("1", 0, nullptr, entity), std::runtime_error);
|
|
}
|