mirror of
https://github.com/MadeOfJelly/MushMachine.git
synced 2025-06-19 19:26:36 +02:00
initial import, >900commits predate this
This commit is contained in:
14
framework/simple_scene/test/CMakeLists.txt
Normal file
14
framework/simple_scene/test/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
add_executable(simple_scene_test
|
||||
ss_test.cpp
|
||||
)
|
||||
|
||||
target_include_directories(simple_scene_test PRIVATE ".")
|
||||
|
||||
target_link_libraries(simple_scene_test
|
||||
engine
|
||||
simple_scene
|
||||
gtest_main
|
||||
)
|
||||
|
||||
add_test(NAME simple_scene_test COMMAND simple_scene_test)
|
||||
|
70
framework/simple_scene/test/ss_test.cpp
Normal file
70
framework/simple_scene/test/ss_test.cpp
Normal file
@ -0,0 +1,70 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <mm/engine.hpp>
|
||||
#include <mm/services/simple_scene.hpp>
|
||||
#include <entt/entity/registry.hpp>
|
||||
|
||||
TEST(simple_scene, add_en_dis) {
|
||||
MM::Engine e;
|
||||
|
||||
e.addService<MM::Services::SimpleSceneService>();
|
||||
|
||||
ASSERT_TRUE(e.enableService<MM::Services::SimpleSceneService>());
|
||||
|
||||
{
|
||||
auto* sss = e.tryService<MM::Services::SimpleSceneService>();
|
||||
ASSERT_NE(sss, nullptr);
|
||||
|
||||
auto& s = sss->getScene();
|
||||
auto e = s.create();
|
||||
ASSERT_TRUE(s.valid(e));
|
||||
}
|
||||
|
||||
e.disableService<MM::Services::SimpleSceneService>();
|
||||
}
|
||||
|
||||
TEST(simple_scene, add_en_dis_provide) {
|
||||
MM::Engine e;
|
||||
|
||||
e.addService<MM::Services::SimpleSceneService>();
|
||||
e.provide<MM::Services::SceneServiceInterface, MM::Services::SimpleSceneService>();
|
||||
|
||||
ASSERT_TRUE(e.enableService<MM::Services::SimpleSceneService>());
|
||||
|
||||
{
|
||||
auto* ssi = e.tryService<MM::Services::SceneServiceInterface>();
|
||||
ASSERT_NE(ssi, nullptr);
|
||||
|
||||
auto& s = ssi->getScene();
|
||||
auto e = s.create();
|
||||
ASSERT_TRUE(s.valid(e));
|
||||
}
|
||||
|
||||
e.disableService<MM::Services::SimpleSceneService>();
|
||||
}
|
||||
|
||||
TEST(simple_scene, change_scene) {
|
||||
MM::Engine engine;
|
||||
|
||||
engine.addService<MM::Services::SimpleSceneService>();
|
||||
ASSERT_TRUE(engine.enableService<MM::Services::SimpleSceneService>());
|
||||
|
||||
{
|
||||
auto* sss = engine.tryService<MM::Services::SimpleSceneService>();
|
||||
ASSERT_NE(sss, nullptr);
|
||||
|
||||
auto e = sss->getScene().create();
|
||||
ASSERT_TRUE(sss->getScene().valid(e));
|
||||
|
||||
sss->changeScene(std::make_unique<MM::Scene>());
|
||||
|
||||
ASSERT_TRUE(sss->getScene().valid(e));
|
||||
|
||||
engine.fixedUpdate();
|
||||
|
||||
ASSERT_FALSE(sss->getScene().valid(e));
|
||||
}
|
||||
|
||||
engine.disableService<MM::Services::SimpleSceneService>();
|
||||
}
|
||||
|
Reference in New Issue
Block a user