test(editor): cover multi-duplicate selection undo state
This commit is contained in:
parent
a265f32ed6
commit
9b520f6b53
@ -462,6 +462,25 @@ void MetaCoreTestHierarchyEditingCommandsDirtyAndUndo() {
|
|||||||
MetaCoreExpect(editorContext.GetSelectedObjectIds() == multiReparentSelection, "Redo multi ReparentSelection should restore selection list");
|
MetaCoreExpect(editorContext.GetSelectedObjectIds() == multiReparentSelection, "Redo multi ReparentSelection should restore selection list");
|
||||||
|
|
||||||
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after multi-reparent");
|
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after multi-reparent");
|
||||||
|
|
||||||
|
const std::size_t countBeforeMultiDuplicate = scene.GetGameObjects().size();
|
||||||
|
MetaCoreExpect(clipboardService->DuplicateSelection(editorContext), "DuplicateSelection command should duplicate multiple selected objects");
|
||||||
|
const std::vector<MetaCore::MetaCoreId> duplicatedMultiSelection = editorContext.GetSelectedObjectIds();
|
||||||
|
MetaCoreExpect(scene.GetGameObjects().size() > countBeforeMultiDuplicate, "DuplicateSelection should add multiple selected objects");
|
||||||
|
MetaCoreExpect(duplicatedMultiSelection.size() == multiReparentSelection.size(), "DuplicateSelection should select each duplicated root object");
|
||||||
|
MetaCoreExpect(editorContext.GetActiveObjectId() == duplicatedMultiSelection.back(), "DuplicateSelection should make the last duplicated object active");
|
||||||
|
MetaCoreExpect(duplicatedMultiSelection != multiReparentSelection, "DuplicateSelection should move selection to duplicated objects");
|
||||||
|
MetaCoreExpect(editorContext.UndoCommand(), "Undo multi DuplicateSelection should succeed");
|
||||||
|
MetaCoreExpect(scene.GetGameObjects().size() == countBeforeMultiDuplicate, "Undo multi DuplicateSelection should restore object count");
|
||||||
|
MetaCoreExpect(editorContext.GetSelectedObjectIds() == multiReparentSelection, "Undo multi DuplicateSelection should restore source selection list");
|
||||||
|
MetaCoreExpect(editorContext.GetActiveObjectId() == *multiReparentSecondId, "Undo multi DuplicateSelection should restore source active object");
|
||||||
|
MetaCoreExpect(!scenePersistenceService->IsSceneDirty(), "Undo multi DuplicateSelection should restore clean baseline");
|
||||||
|
MetaCoreExpect(editorContext.RedoCommand(), "Redo multi DuplicateSelection should succeed");
|
||||||
|
MetaCoreExpect(scene.GetGameObjects().size() > countBeforeMultiDuplicate, "Redo multi DuplicateSelection should add duplicated objects again");
|
||||||
|
MetaCoreExpect(editorContext.GetSelectedObjectIds() == duplicatedMultiSelection, "Redo multi DuplicateSelection should restore duplicated selection list");
|
||||||
|
MetaCoreExpect(editorContext.GetActiveObjectId() == duplicatedMultiSelection.back(), "Redo multi DuplicateSelection should restore duplicated active object");
|
||||||
|
|
||||||
|
MetaCoreExpect(scenePersistenceService->SaveCurrentScene(editorContext), "Hierarchy command scene should save after multi-duplicate");
|
||||||
editorContext.SelectOnly(*createdId);
|
editorContext.SelectOnly(*createdId);
|
||||||
const std::size_t countBeforeDuplicate = scene.GetGameObjects().size();
|
const std::size_t countBeforeDuplicate = scene.GetGameObjects().size();
|
||||||
MetaCoreExpect(clipboardService->DuplicateSelection(editorContext), "DuplicateSelection command should duplicate selected object");
|
MetaCoreExpect(clipboardService->DuplicateSelection(editorContext), "DuplicateSelection command should duplicate selected object");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user