diff --git a/tests/MetaCoreSmokeTests.cpp b/tests/MetaCoreSmokeTests.cpp index a6a6add..1c50a7f 100644 --- a/tests/MetaCoreSmokeTests.cpp +++ b/tests/MetaCoreSmokeTests.cpp @@ -417,26 +417,32 @@ void MetaCoreTestHierarchyEditingCommandsDirtyAndUndo() { editorContext.SelectOnly(*createdId); const std::size_t countBeforeDuplicate = scene.GetGameObjects().size(); MetaCoreExpect(clipboardService->DuplicateSelection(editorContext), "DuplicateSelection command should duplicate selected object"); + const MetaCore::MetaCoreId duplicatedId = editorContext.GetActiveObjectId(); MetaCoreExpect(scene.GetGameObjects().size() > countBeforeDuplicate, "DuplicateSelection should add at least one object"); + MetaCoreExpect(duplicatedId != 0 && duplicatedId != *createdId, "DuplicateSelection should select duplicated object"); MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "DuplicateSelection command should mark scene dirty"); MetaCoreExpect(editorContext.UndoCommand(), "Undo DuplicateSelection should succeed"); MetaCoreExpect(scene.GetGameObjects().size() == countBeforeDuplicate, "Undo DuplicateSelection should restore object count"); + MetaCoreExpect(editorContext.GetActiveObjectId() == *createdId, "Undo DuplicateSelection should restore source object selection"); MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo DuplicateSelection should restore clean baseline"); MetaCoreExpect(editorContext.RedoCommand(), "Redo DuplicateSelection should succeed"); MetaCoreExpect(scene.GetGameObjects().size() > countBeforeDuplicate, "Redo DuplicateSelection should add object again"); + MetaCoreExpect(editorContext.GetActiveObjectId() == duplicatedId, "Redo DuplicateSelection should restore duplicated object selection"); MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after duplicate"); - const MetaCore::MetaCoreId duplicatedId = editorContext.GetActiveObjectId(); - MetaCoreExpect(duplicatedId != 0 && duplicatedId != *createdId, "DuplicateSelection should select duplicated object"); const std::size_t countBeforeDelete = scene.GetGameObjects().size(); MetaCoreExpect(clipboardService->DeleteSelection(editorContext), "DeleteSelection command should delete selected object"); MetaCoreExpect(scene.GetGameObjects().size() < countBeforeDelete, "DeleteSelection should remove selected object"); + MetaCoreExpect(editorContext.GetActiveObjectId() == 0, "DeleteSelection should clear active selection"); + MetaCoreExpect(editorContext.GetSelectedObjectIds().empty(), "DeleteSelection should clear selected object list"); MetaCoreExpect(scenePersistenceService->IsSceneDirty(), "DeleteSelection command should mark scene dirty"); MetaCoreExpect(editorContext.UndoCommand(), "Undo DeleteSelection should succeed"); MetaCoreExpect(scene.GetGameObjects().size() == countBeforeDelete, "Undo DeleteSelection should restore object count"); + MetaCoreExpect(editorContext.GetActiveObjectId() == duplicatedId, "Undo DeleteSelection should restore deleted object selection"); MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo DeleteSelection should restore clean baseline"); MetaCoreExpect(editorContext.RedoCommand(), "Redo DeleteSelection should succeed"); MetaCoreExpect(scene.GetGameObjects().size() < countBeforeDelete, "Redo DeleteSelection should remove object again"); + MetaCoreExpect(editorContext.GetSelectedObjectIds().empty(), "Redo DeleteSelection should restore cleared selection"); coreServicesModule->Shutdown(moduleRegistry); moduleRegistry.ShutdownServices();