#include #include #include #include "renderive/renderable/Renderable.hpp" #include "renderive/scene/Scene.hpp" struct Scene3D_Context_Test_Renderable : Renderable_Base { explicit Scene3D_Context_Test_Renderable(Scene_Base& scene) : Renderable_Base(scene) {} void render(const Scene_Render_Context& context) override { scene_is_3d = dynamic_cast(context.scene) != nullptr; ++render_count; } std::atomic render_count{}; bool scene_is_3d{}; }; TEST(scene3d_context_test, uses_scene_3d_base_contract) { Scene3D_Context<> scene; auto renderable = std::make_shared(scene); scene.attach_renderable(renderable); scene.render(); scene.wait_for_render(); EXPECT_EQ(renderable->render_count.load(), 1); EXPECT_TRUE(renderable->scene_is_3d); }