PrefabUndoAddEntityTestFixture.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. #pragma once
  9. #include <Prefab/PrefabTestFixture.h>
  10. #include <AzToolsFramework/Prefab/Undo/PrefabUndoAddEntity.h>
  11. #include <AzToolsFramework/Prefab/Undo/PrefabUndoAddEntityAsOverride.h>
  12. namespace UnitTest
  13. {
  14. using namespace AzToolsFramework::Prefab;
  15. using namespace PrefabTestUtils;
  16. using InstanceList = AZStd::vector<AZStd::reference_wrapper<Instance>>;
  17. class PrefabUndoAddEntityTestFixture
  18. : public PrefabTestFixture
  19. {
  20. protected:
  21. using PrefabTestFixture::CreateEntity;
  22. EntityAlias CreateEntity(const AZStd::string& entityName,
  23. Instance& owningInstance);
  24. EntityAlias CreateEntity(const AZStd::string& entityName,
  25. Instance& owningInstance, const EntityAlias& parentEntityAlias);
  26. PrefabUndoAddEntity CreatePrefabUndoAddEntityNode(
  27. const EntityAlias& newEntityAlias,
  28. Instance& focusedInstance,
  29. const AZStd::string& undoAddEntityOperationName,
  30. const EntityAlias& parentEntityAlias = "");
  31. PrefabUndoAddEntityAsOverride CreatePrefabUndoAddEntityAsOverrideNode(
  32. const EntityAlias& newEntityAlias,
  33. Instance& owningInstance,
  34. Instance& focusedInstance,
  35. const AZStd::string& undoAddEntityOperationName,
  36. const EntityAlias& parentEntityAlias = "");
  37. void ValidateNewEntityUnderInstance(
  38. Instance& instance,
  39. const EntityAlias& newEntityAlias, const AZStd::string& newEntityName,
  40. size_t expectedEntityCount);
  41. void ValidateNewEntityUnderParentEntity(
  42. Instance& instance,
  43. const EntityAlias& parentEntityAlias, const AZStd::string& parentEntityName,
  44. const EntityAlias& newEntityAlias, const AZStd::string& newEntityName,
  45. size_t expectedEntityCount);
  46. void ValidateNewEntityNotUnderParentEntity(
  47. Instance& instance,
  48. const EntityAlias& parentEntityAlias, const AZStd::string& parentEntityName,
  49. const EntityAlias& newEntityAlias,
  50. size_t expectedEntityCount);
  51. void ValidateNewEntityNotUnderInstance(
  52. Instance& instance,
  53. const EntityAlias& newEntityAlias,
  54. size_t expectedEntityCount);
  55. private:
  56. EntityAlias CreateEntity(const AZStd::string& entityName,
  57. Instance& owningInstance, const AZ::Entity& parentEntity);
  58. void ValidateNewEntityUnderParentEntity(
  59. Instance& instance,
  60. const AZ::Entity& parentEntity,
  61. const EntityAlias& newEntityAlias, const AZStd::string& newEntityName,
  62. size_t expectedEntityCount);
  63. void ValidateNewEntityNotUnderParentEntity(
  64. Instance& instance,
  65. const AZ::Entity& parentEntity,
  66. const EntityAlias& newEntityAlias,
  67. size_t expectedEntityCount);
  68. AZ::Entity& GetEntityFromOwningInstance(const EntityAlias& entityAlias,
  69. Instance& owningInstance);
  70. };
  71. }