You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Framework/AzToolsFramework/Tests/PropertyIntSpinCtrlTests.cpp

118 lines
3.8 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include "PropertyIntCtrlCommonTests.h"
#include <AzToolsFramework/UI/PropertyEditor/PropertyIntSpinCtrl.hxx>
namespace UnitTest
{
using namespace AzToolsFramework;
template <typename ValueType>
using PropertySpinCtrlFixture = PropertyCtrlFixture<ValueType, PropertyIntSpinCtrl, IntSpinBoxHandler>;
TYPED_TEST_CASE(PropertySpinCtrlFixture, IntegerPrimtitiveTestConfigs);
TYPED_TEST(PropertySpinCtrlFixture, PropertySpinCtrlHandlersCreated)
{
this->PropertyCtrlHandlersCreated();
}
TYPED_TEST(PropertySpinCtrlFixture, PropertySpinCtrlWidgetsCreated)
{
this->PropertyCtrlWidgetsCreated();
}
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxWidget_Minimum_ExpectQtWidgetLimits_Min)
{
this->Widget_Minimum_ExpectQtWidgetLimits_Min();
}
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxWidget_Maximum_ExpectQtWidgetLimits_Max)
{
EXPECT_EQ(this->m_widget->maximum(), AzToolsFramework::QtWidgetLimits<TypeParam>::Max());
}
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxHandlerMinMaxLimit_ModifyHandler_ExpectSuccessAndValidRangeLimitToolTipString)
{
this->HandlerMinMaxLimit_ModifyHandler_ExpectSuccessAndValidRangeLimitToolTipString();
}
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxHandlerMinMaxLessLimit_ModifyHandler_ExpectSuccessAndValidLessLimitToolTipString)
{
this->HandlerMinMaxLessLimit_ModifyHandler_ExpectSuccessAndValidLessLimitToolTipString();
}
struct PropertyEditorHandler
: public AzToolsFramework::PropertyEditorGUIMessages::Bus::Handler
{
PropertyEditorHandler()
{
AzToolsFramework::PropertyEditorGUIMessages::Bus::Handler::BusConnect();
}
~PropertyEditorHandler()
{
AzToolsFramework::PropertyEditorGUIMessages::Bus::Handler::BusDisconnect();
}
// AzToolsFramework::PropertyEditorGUIMessages::Bus overrides ...
void RequestWrite([[maybe_unused]] QWidget* editorGUI) override
{
m_requestWriteCallCount++;
}
void RequestRefresh([[maybe_unused]] PropertyModificationRefreshLevel level) override
{
}
void AddElementsToParentContainer(
[[maybe_unused]] QWidget* editorGUI,
[[maybe_unused]] size_t numElements,
[[maybe_unused]] const InstanceDataNode::FillDataClassCallback& fillDataCallback) override
{
}
void RequestPropertyNotify([[maybe_unused]] QWidget* editorGUI) override
{
}
void OnEditingFinished([[maybe_unused]]QWidget* editorGUI) override
{
m_onEditingFinishedCallCount++;
}
int m_requestWriteCallCount = 0;
int m_onEditingFinishedCallCount = 0;
};
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxWidgetValueChangedInvokesPropertyEditorGUIMessages)
{
// setup the event handler
PropertyEditorHandler eventHandler;
// trigger the QT signal
this->EmitWidgetValueChanged();
// there should be at least 1 call to RequestWrite.
EXPECT_GT(eventHandler.m_requestWriteCallCount, 0);
}
TYPED_TEST(PropertySpinCtrlFixture, SpinBoxWidgetEditingFinishedInvokesPropertyEditorGUIMessages)
{
// setup the event handler
PropertyEditorHandler eventHandler;
// trigger the QT signal
this->EmitWidgetEditingFinished();
// there should be at least 1 call to OnEditingFinished.
EXPECT_GT(eventHandler.m_onEditingFinishedCallCount, 0);
}
} // namespace UnitTest