test(editor): cover rename selection undo state

This commit is contained in:
ayuan9957 2026-06-23 22:19:57 +08:00
parent fcffd651f4
commit ef261c3c8e

View File

@ -384,13 +384,21 @@ void MetaCoreTestHierarchyEditingCommandsDirtyAndUndo() {
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after forced child create"); MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after forced child create");
MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Hierarchy command scene should be clean after forced child create save"); MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Hierarchy command scene should be clean after forced child create save");
const MetaCore::MetaCoreId activeBeforeRename = editorContext.GetActiveObjectId();
const std::vector<MetaCore::MetaCoreId> selectionBeforeRename = editorContext.GetSelectedObjectIds();
MetaCoreExpect(sceneEditingService->RenameGameObject(editorContext, *createdId, "HierarchyObjectRenamed"), "RenameGameObject command should rename object"); MetaCoreExpect(sceneEditingService->RenameGameObject(editorContext, *createdId, "HierarchyObjectRenamed"), "RenameGameObject command should rename object");
MetaCoreExpect(editorContext.GetActiveObjectId() == activeBeforeRename, "RenameGameObject should keep active selection unchanged");
MetaCoreExpect(editorContext.GetSelectedObjectIds() == selectionBeforeRename, "RenameGameObject should keep selected object list unchanged");
MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "RenameGameObject command should mark scene dirty"); MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "RenameGameObject command should mark scene dirty");
MetaCoreExpect(editorContext.UndoCommand(), "Undo RenameGameObject should succeed"); MetaCoreExpect(editorContext.UndoCommand(), "Undo RenameGameObject should succeed");
MetaCoreExpect(scene.FindGameObject(*createdId).GetName() == "HierarchyObject", "Undo RenameGameObject should restore old name"); MetaCoreExpect(scene.FindGameObject(*createdId).GetName() == "HierarchyObject", "Undo RenameGameObject should restore old name");
MetaCoreExpect(editorContext.GetActiveObjectId() == activeBeforeRename, "Undo RenameGameObject should restore active selection");
MetaCoreExpect(editorContext.GetSelectedObjectIds() == selectionBeforeRename, "Undo RenameGameObject should restore selected object list");
MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo RenameGameObject should restore clean baseline"); MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo RenameGameObject should restore clean baseline");
MetaCoreExpect(editorContext.RedoCommand(), "Redo RenameGameObject should succeed"); MetaCoreExpect(editorContext.RedoCommand(), "Redo RenameGameObject should succeed");
MetaCoreExpect(scene.FindGameObject(*createdId).GetName() == "HierarchyObjectRenamed", "Redo RenameGameObject should restore new name"); MetaCoreExpect(scene.FindGameObject(*createdId).GetName() == "HierarchyObjectRenamed", "Redo RenameGameObject should restore new name");
MetaCoreExpect(editorContext.GetActiveObjectId() == activeBeforeRename, "Redo RenameGameObject should restore active selection");
MetaCoreExpect(editorContext.GetSelectedObjectIds() == selectionBeforeRename, "Redo RenameGameObject should restore selected object list");
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after rename"); MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after rename");
const auto parentId = sceneEditingService->CreateGameObject( const auto parentId = sceneEditingService->CreateGameObject(