ClusterTests.cpp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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 <AzCore/Math/Transform.h>
  9. #include <AzCore/UnitTest/TestTypes.h>
  10. #include <AzFramework/Viewport/CameraState.h>
  11. #include <AzFramework/Viewport/ViewportScreen.h>
  12. #include <AzTest/AzTest.h>
  13. #include <AzToolsFramework/Viewport/ViewportMessages.h>
  14. #include <AzToolsFramework/ViewportUi/ViewportUiDisplay.h>
  15. namespace UnitTest
  16. {
  17. using ButtonGroup = AzToolsFramework::ViewportUi::Internal::ButtonGroup;
  18. using ButtonId = AzToolsFramework::ViewportUi::ButtonId;
  19. TEST(ClusterTest, AddButtonAddsButtonToClusterAndReturnsId)
  20. {
  21. auto buttonGroup = AZStd::make_unique<ButtonGroup>();
  22. auto buttonId = buttonGroup->AddButton("");
  23. auto button = buttonGroup->GetButton(buttonId);
  24. EXPECT_TRUE(button != nullptr);
  25. }
  26. TEST(ClusterTest, SetHighlightedButtonChangesButtonStateToSelected)
  27. {
  28. auto buttonGroup = AZStd::make_unique<ButtonGroup>();
  29. auto buttonId = buttonGroup->AddButton("");
  30. // check button is not highlighted by default
  31. auto button = buttonGroup->GetButton(buttonId);
  32. EXPECT_FALSE(button->m_state == AzToolsFramework::ViewportUi::Internal::Button::State::Selected);
  33. buttonGroup->SetHighlightedButton(buttonId);
  34. EXPECT_TRUE(button->m_state == AzToolsFramework::ViewportUi::Internal::Button::State::Selected);
  35. }
  36. TEST(ClusterTest, ConnectEventHandlerConnectsHandlerToButtonTriggeredEvent)
  37. {
  38. auto buttonGroup = AZStd::make_unique<ButtonGroup>();
  39. auto buttonId = buttonGroup->AddButton("");
  40. // create a handler which will be triggered by the cluster
  41. bool handlerTriggered = false;
  42. auto testButtonId = ButtonId(buttonId);
  43. AZ::Event<ButtonId>::Handler handler(
  44. [&handlerTriggered, testButtonId](ButtonId buttonId)
  45. {
  46. if (buttonId == testButtonId)
  47. {
  48. handlerTriggered = true;
  49. }
  50. });
  51. buttonGroup->ConnectEventHandler(handler);
  52. buttonGroup->PressButton(buttonId);
  53. EXPECT_TRUE(handlerTriggered);
  54. }
  55. } // namespace UnitTest