MetaCore/tests/MetaCoreSmokeTests.cpp
2026-03-20 10:39:34 +08:00

55 lines
2.0 KiB
C++

#include "MetaCoreEditor/MetaCoreEditorModule.h"
#include "MetaCoreFoundation/MetaCoreLogService.h"
#include "MetaCoreScene/MetaCoreScene.h"
#include <cstdlib>
#include <iostream>
namespace {
void MetaCoreExpect(bool condition, const char* message) {
if (!condition) {
std::cerr << "MetaCoreSmokeTests failed: " << message << '\n';
std::exit(1);
}
}
class MetaCoreDummyPanelProvider final : public MetaCore::MetaCoreIEditorPanelProvider {
public:
std::string GetPanelId() const override { return "Dummy"; }
std::string GetPanelTitle() const override { return "Dummy"; }
bool IsOpenByDefault() const override { return false; }
void DrawPanel(MetaCore::MetaCoreEditorContext&) override {}
};
} // namespace
int main() {
MetaCore::MetaCoreScene scene = MetaCore::MetaCoreCreateDefaultScene();
MetaCoreExpect(scene.GetGameObjects().size() == 3, "默认场景应包含三个对象");
bool hasCamera = false;
bool hasLight = false;
bool hasCube = false;
for (const MetaCore::MetaCoreGameObject& object : scene.GetGameObjects()) {
hasCamera = hasCamera || object.Camera.has_value();
hasLight = hasLight || object.Light.has_value();
hasCube = hasCube || object.MeshRenderer.has_value();
}
MetaCoreExpect(hasCamera, "默认场景应包含摄像机");
MetaCoreExpect(hasLight, "默认场景应包含光源");
MetaCoreExpect(hasCube, "默认场景应包含立方体");
MetaCore::MetaCoreEditorModuleRegistry moduleRegistry;
moduleRegistry.RegisterPanelProvider(std::make_unique<MetaCoreDummyPanelProvider>());
MetaCoreExpect(!moduleRegistry.AccessPanelOpenState("Dummy"), "面板默认状态应为关闭");
MetaCore::MetaCoreLogService logService;
logService.AddEntry(MetaCore::MetaCoreLogLevel::Info, "Test", "Smoke");
MetaCoreExpect(logService.GetEntries().size() == 1, "日志服务应记录一条日志");
std::cout << "MetaCoreSmokeTests passed\n";
return 0;
}