CannotAssignGroupsParentAsChild.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) Contributors to the Open 3D Engine Project.
  3. * For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0 OR MIT
  6. *
  7. */
  8. #include <gtest/gtest.h>
  9. #include <MCore/Source/IDGenerator.h>
  10. #include <EMotionFX/CommandSystem/Source/CommandManager.h>
  11. #include <EMotionFX/Source/AnimGraphManager.h>
  12. #include <EMotionFX/Source/Parameter/GroupParameter.h>
  13. #include <Tests/UI/CommandRunnerFixture.h>
  14. namespace EMotionFX
  15. {
  16. TEST_F(CommandRunnerFixture, CannotAssignGroupsParentAsChild)
  17. {
  18. const AZ::u32 animGraphId = aznumeric_cast<AZ::u32>(MCore::GetIDGenerator().GenerateID()) + 1;
  19. ExecuteCommands({
  20. "CreateAnimGraph",
  21. "Select -animGraphID " + std::to_string(animGraphId),
  22. "AnimGraphAddGroupParameter -animGraphID " + std::to_string(animGraphId) + " -name OriginalParent",
  23. "AnimGraphAddGroupParameter -animGraphID " + std::to_string(animGraphId) + " -name OriginalChild -parent OriginalParent",
  24. });
  25. const AnimGraph* animGraph = GetAnimGraphManager().FindAnimGraphByID(animGraphId);
  26. ASSERT_TRUE(animGraph);
  27. const GroupParameter* originalParent = static_cast<const GroupParameter*>(animGraph->FindParameterByName("OriginalParent"));
  28. const GroupParameter* originalChild = static_cast<const GroupParameter*>(animGraph->FindParameterByName("OriginalChild"));
  29. EXPECT_THAT(originalParent->GetChildParameters(), testing::Contains(originalChild));
  30. EXPECT_THAT(originalChild->GetChildParameters(), testing::Not(testing::Contains(originalParent)));
  31. {
  32. AZStd::string result;
  33. EXPECT_FALSE(CommandSystem::GetCommandManager()->ExecuteCommand({"AnimGraphAdjustGroupParameter -animGraphID " + AZStd::to_string(animGraphId) + " -name OriginalChild -parameterNames OriginalParent -action add"}, result));
  34. }
  35. EXPECT_THAT(originalParent->GetChildParameters(), testing::Contains(originalChild));
  36. EXPECT_THAT(originalChild->GetChildParameters(), testing::Not(testing::Contains(originalParent)));
  37. }
  38. } // namespace EMotionFX