55 lines
2.0 KiB
C++
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;
|
|
}
|