Error and warning msgs now return AZ::Outcomes.
Signed-off-by: John <jonawals@amazon.com>
This commit is contained in:
+5
-2
@@ -9,6 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Interface/Interface.h>
|
||||
#include <AzCore/Outcome/Outcome.h>
|
||||
#include <AzToolsFramework/API/ViewportEditorModeTrackerNotificationBus.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
@@ -22,10 +23,12 @@ namespace AzToolsFramework
|
||||
virtual ~ViewportEditorModeTrackerInterface() = default;
|
||||
|
||||
//! Registers the specified editor mode as active for the specified viewport.
|
||||
virtual void RegisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) = 0;
|
||||
virtual AZ::Outcome<void, AZStd::string> RegisterMode(
|
||||
const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) = 0;
|
||||
|
||||
//! Unregisters the specified editor mode as active for the specified viewport.
|
||||
virtual void UnregisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) = 0;
|
||||
virtual AZ::Outcome<void, AZStd::string> UnregisterMode(
|
||||
const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) = 0;
|
||||
|
||||
//! Attempts to retrieve the editor mode state for the specified viewport, otherwise returns nullptr.
|
||||
virtual const ViewportEditorModesInterface* GetViewportEditorModes(const ViewportEditorModeInfo& viewportEditorModeInfo) const = 0;
|
||||
|
||||
+50
-20
@@ -13,28 +13,32 @@ namespace AzToolsFramework
|
||||
{
|
||||
static constexpr const char* ViewportEditorModeLogWindow = "ViewportEditorMode";
|
||||
|
||||
void ViewportEditorModes::SetModeActive(ViewportEditorMode mode)
|
||||
AZ::Outcome<void, AZStd::string> ViewportEditorModes::SetModeActive(ViewportEditorMode mode)
|
||||
{
|
||||
if (const AZ::u32 modeIndex = static_cast<AZ::u32>(mode);
|
||||
modeIndex < NumEditorModes)
|
||||
{
|
||||
m_editorModes[modeIndex] = true;
|
||||
return AZ::Success();
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Error(ViewportEditorModeLogWindow, false, "Cannot activate mode %u, mode is not recognized", modeIndex)
|
||||
return AZ::Failure(
|
||||
AZStd::string::format(ViewportEditorModeLogWindow, false, "Cannot activate mode %u, mode is not recognized", modeIndex));
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportEditorModes::SetModeInactive(ViewportEditorMode mode)
|
||||
AZ::Outcome<void, AZStd::string> ViewportEditorModes::SetModeInactive(ViewportEditorMode mode)
|
||||
{
|
||||
if (const AZ::u32 modeIndex = static_cast<AZ::u32>(mode); modeIndex < NumEditorModes)
|
||||
{
|
||||
m_editorModes[modeIndex] = false;
|
||||
return AZ::Success();
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Error(ViewportEditorModeLogWindow, false, "Cannot deactivate mode %u, mode is not recognized", modeIndex)
|
||||
return AZ::Failure(
|
||||
AZStd::string::format(ViewportEditorModeLogWindow, false, "Cannot deactivate mode %u, mode is not recognized", modeIndex));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,41 +63,67 @@ namespace AzToolsFramework
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportEditorModeTracker::RegisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode)
|
||||
AZ::Outcome<void, AZStd::string> ViewportEditorModeTracker::RegisterMode(
|
||||
const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode)
|
||||
{
|
||||
auto& editorModes = m_viewportEditorModesMap[viewportEditorModeInfo.m_id];
|
||||
AZ_Warning(
|
||||
ViewportEditorModeLogWindow, !editorModes.IsModeActive(mode),
|
||||
AZStd::string::format(
|
||||
"Duplicate call to RegisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(mode), viewportEditorModeInfo.m_id).c_str());
|
||||
editorModes.SetModeActive(mode);
|
||||
if (editorModes.IsModeActive(mode))
|
||||
{
|
||||
return AZ::Failure(AZStd::string::format(
|
||||
"Duplicate call to RegisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(mode), viewportEditorModeInfo.m_id));
|
||||
}
|
||||
|
||||
if (const auto result = editorModes.SetModeActive(mode);
|
||||
!result.IsSuccess())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
ViewportEditorModeNotificationsBus::Event(
|
||||
viewportEditorModeInfo.m_id, &ViewportEditorModeNotificationsBus::Events::OnEditorModeEnter, editorModes, mode);
|
||||
|
||||
return AZ::Success();
|
||||
}
|
||||
|
||||
void ViewportEditorModeTracker::UnregisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode)
|
||||
AZ::Outcome<void, AZStd::string> ViewportEditorModeTracker::UnregisterMode(
|
||||
const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode)
|
||||
{
|
||||
ViewportEditorModes* editorModes = nullptr;
|
||||
bool modeWasActive = true;
|
||||
if (m_viewportEditorModesMap.count(viewportEditorModeInfo.m_id))
|
||||
{
|
||||
editorModes = &m_viewportEditorModesMap.at(viewportEditorModeInfo.m_id);
|
||||
AZ_Warning(
|
||||
ViewportEditorModeLogWindow, editorModes->IsModeActive(mode),
|
||||
AZStd::string::format(
|
||||
"Duplicate call to UnregisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(mode), viewportEditorModeInfo.m_id).c_str());
|
||||
if (!editorModes->IsModeActive(mode))
|
||||
{
|
||||
return AZ::Failure(AZStd::string::format(
|
||||
"Duplicate call to UnregisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(mode), viewportEditorModeInfo.m_id));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Warning(
|
||||
ViewportEditorModeLogWindow, false, "Call to UnregisterMode for mode '%u' on id '%i' without precursor call to RegisterMode",
|
||||
static_cast<AZ::u32>(mode), viewportEditorModeInfo.m_id);
|
||||
|
||||
modeWasActive = false;
|
||||
editorModes = &m_viewportEditorModesMap[viewportEditorModeInfo.m_id];
|
||||
}
|
||||
|
||||
editorModes->SetModeInactive(mode);
|
||||
if(const auto result = editorModes->SetModeInactive(mode);
|
||||
!result.IsSuccess())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
ViewportEditorModeNotificationsBus::Event(
|
||||
viewportEditorModeInfo.m_id, &ViewportEditorModeNotificationsBus::Events::OnEditorModeExit, *editorModes, mode);
|
||||
|
||||
if (modeWasActive)
|
||||
{
|
||||
return AZ::Success();
|
||||
}
|
||||
else
|
||||
{
|
||||
return AZ::Failure(AZStd::string::format(
|
||||
"Call to UnregisterMode for mode '%u' on id '%i' without precursor call to RegisterMode", static_cast<AZ::u32>(mode),
|
||||
viewportEditorModeInfo.m_id));
|
||||
}
|
||||
}
|
||||
|
||||
const ViewportEditorModesInterface* ViewportEditorModeTracker::GetViewportEditorModes(const ViewportEditorModeInfo& viewportEditorModeInfo) const
|
||||
|
||||
+4
-4
@@ -26,10 +26,10 @@ namespace AzToolsFramework
|
||||
static constexpr AZ::u8 NumEditorModes = 4;
|
||||
|
||||
//! Sets the specified mode as active.
|
||||
void SetModeActive(ViewportEditorMode mode);
|
||||
AZ::Outcome<void, AZStd::string> SetModeActive(ViewportEditorMode mode);
|
||||
|
||||
// Sets the specified mode as inactive.
|
||||
void SetModeInactive(ViewportEditorMode mode);
|
||||
AZ::Outcome<void, AZStd::string> SetModeInactive(ViewportEditorMode mode);
|
||||
|
||||
// ViewportEditorModesInterface ...
|
||||
bool IsModeActive(ViewportEditorMode mode) const override;
|
||||
@@ -49,8 +49,8 @@ namespace AzToolsFramework
|
||||
void UnregisterInterface();
|
||||
|
||||
// ViewportEditorModeTrackerInterface overrides ...
|
||||
void RegisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
|
||||
void UnregisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
|
||||
AZ::Outcome<void, AZStd::string> RegisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
|
||||
AZ::Outcome<void, AZStd::string> UnregisterMode(const ViewportEditorModeInfo& viewportEditorModeInfo, ViewportEditorMode mode) override;
|
||||
const ViewportEditorModesInterface* GetViewportEditorModes(const ViewportEditorModeInfo& viewportEditorModeInfo) const override;
|
||||
size_t GetTrackedViewportCount() const override;
|
||||
bool IsViewportModeTracked(const ViewportEditorModeInfo& viewportEditorModeInfo) const override;
|
||||
|
||||
@@ -19,11 +19,23 @@ namespace UnitTest
|
||||
using ViewportId = ViewportEditorModeInfo::IdType;
|
||||
using ViewportEditorModesInterface = AzToolsFramework::ViewportEditorModesInterface;
|
||||
|
||||
void SetModeActiveAndExpectSuccess(ViewportEditorModes& editorModeState, ViewportEditorMode mode)
|
||||
{
|
||||
const auto result = editorModeState.SetModeActive(mode);
|
||||
EXPECT_TRUE(result.IsSuccess());
|
||||
}
|
||||
|
||||
void SetModeInactiveAndExpectSuccess(ViewportEditorModes& editorModeState, ViewportEditorMode mode)
|
||||
{
|
||||
const auto result = editorModeState.SetModeInactive(mode);
|
||||
EXPECT_TRUE(result.IsSuccess());
|
||||
}
|
||||
|
||||
void SetAllModesActive(ViewportEditorModes& editorModeState)
|
||||
{
|
||||
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
|
||||
{
|
||||
editorModeState.SetModeActive(static_cast<ViewportEditorMode>(mode));
|
||||
SetModeActiveAndExpectSuccess(editorModeState, static_cast<ViewportEditorMode>(mode));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +43,7 @@ namespace UnitTest
|
||||
{
|
||||
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
|
||||
{
|
||||
editorModeState.SetModeInactive(static_cast<ViewportEditorMode>(mode));
|
||||
SetModeInactiveAndExpectSuccess(editorModeState, static_cast<ViewportEditorMode>(mode));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -155,7 +167,7 @@ namespace UnitTest
|
||||
|
||||
TEST_P(ViewportEditorModesTestsFixtureWithParams, SettingModeActiveActivatesOnlyThatMode)
|
||||
{
|
||||
m_editorModes.SetModeActive(m_selectedEditorMode);
|
||||
SetModeActiveAndExpectSuccess(m_editorModes, m_selectedEditorMode);
|
||||
|
||||
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
|
||||
{
|
||||
@@ -174,7 +186,7 @@ namespace UnitTest
|
||||
TEST_P(ViewportEditorModesTestsFixtureWithParams, SettingModeInactiveInactivatesOnlyThatMode)
|
||||
{
|
||||
SetAllModesActive(m_editorModes);
|
||||
m_editorModes.SetModeInactive(m_selectedEditorMode);
|
||||
SetModeInactiveAndExpectSuccess(m_editorModes, m_selectedEditorMode);
|
||||
|
||||
for (auto mode = 0; mode < ViewportEditorModes::NumEditorModes; mode++)
|
||||
{
|
||||
@@ -196,7 +208,9 @@ namespace UnitTest
|
||||
{
|
||||
// Given only the selected mode active
|
||||
SetAllModesInactive(m_editorModes);
|
||||
m_editorModes.SetModeActive(m_selectedEditorMode);
|
||||
{
|
||||
SetModeActiveAndExpectSuccess(m_editorModes, m_selectedEditorMode);
|
||||
}
|
||||
|
||||
const auto editorMode = static_cast<ViewportEditorMode>(mode);
|
||||
if (editorMode == m_selectedEditorMode)
|
||||
@@ -205,7 +219,7 @@ namespace UnitTest
|
||||
}
|
||||
|
||||
// When other modes are activated
|
||||
m_editorModes.SetModeActive(editorMode);
|
||||
SetModeActiveAndExpectSuccess(m_editorModes, editorMode);
|
||||
|
||||
for (auto expectedMode = 0; expectedMode < ViewportEditorModes::NumEditorModes; expectedMode++)
|
||||
{
|
||||
@@ -230,7 +244,7 @@ namespace UnitTest
|
||||
{
|
||||
// Given only the selected mode inactive
|
||||
SetAllModesActive(m_editorModes);
|
||||
m_editorModes.SetModeInactive(m_selectedEditorMode);
|
||||
SetModeInactiveAndExpectSuccess(m_editorModes, m_selectedEditorMode);
|
||||
|
||||
const auto editorMode = static_cast<ViewportEditorMode>(mode);
|
||||
if (editorMode == m_selectedEditorMode)
|
||||
@@ -239,7 +253,7 @@ namespace UnitTest
|
||||
}
|
||||
|
||||
// When other modes are deactivated
|
||||
m_editorModes.SetModeInactive(editorMode);
|
||||
SetModeInactiveAndExpectSuccess(m_editorModes, editorMode);
|
||||
|
||||
for (auto expectedMode = 0; expectedMode < ViewportEditorModes::NumEditorModes; expectedMode++)
|
||||
{
|
||||
@@ -267,18 +281,16 @@ namespace UnitTest
|
||||
AzToolsFramework::ViewportEditorMode::Focus,
|
||||
AzToolsFramework::ViewportEditorMode::Pick));
|
||||
|
||||
TEST_F(ViewportEditorModesTestsFixture, SettingOutOfBoundsModeActiveIssuesErrorMsg)
|
||||
TEST_F(ViewportEditorModesTestsFixture, SettingOutOfBoundsModeActiveReturnsError)
|
||||
{
|
||||
UnitTest::TestRunner::Instance().StartAssertTests();
|
||||
m_editorModes.SetModeActive(static_cast<ViewportEditorMode>(ViewportEditorModes::NumEditorModes));
|
||||
EXPECT_EQ(1, UnitTest::TestRunner::Instance().StopAssertTests());
|
||||
const auto result = m_editorModes.SetModeActive(static_cast<ViewportEditorMode>(ViewportEditorModes::NumEditorModes));
|
||||
EXPECT_FALSE(result.IsSuccess());
|
||||
}
|
||||
|
||||
TEST_F(ViewportEditorModesTestsFixture, SettingOutOfBoundsModeInactiveIssuesErrorMsg)
|
||||
TEST_F(ViewportEditorModesTestsFixture, SettingOutOfBoundsModeInactiveReturnsError)
|
||||
{
|
||||
UnitTest::TestRunner::Instance().StartAssertTests();
|
||||
m_editorModes.SetModeInactive(static_cast<ViewportEditorMode>(ViewportEditorModes::NumEditorModes));
|
||||
EXPECT_EQ(1, UnitTest::TestRunner::Instance().StopAssertTests());
|
||||
const auto result = m_editorModes.SetModeInactive(static_cast<ViewportEditorMode>(ViewportEditorModes::NumEditorModes));
|
||||
EXPECT_FALSE(result.IsSuccess());
|
||||
}
|
||||
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, InitialCentralStateTrackerHasNoViewportEditorModess)
|
||||
@@ -306,7 +318,7 @@ namespace UnitTest
|
||||
EXPECT_TRUE(viewportEditorModeState->IsModeActive(editorMode));
|
||||
}
|
||||
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatIdButIssuesErrorMsg)
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModeForNonExistentIdCreatesViewportEditorModesForThatIdButReturnsError)
|
||||
{
|
||||
// Given a viewport not currently being tracked
|
||||
const ViewportId viewportid = 0;
|
||||
@@ -315,12 +327,13 @@ namespace UnitTest
|
||||
|
||||
// When a mode is deactivated for that viewport
|
||||
const auto editorMode = ViewportEditorMode::Default;
|
||||
UnitTest::ErrorHandler errorHandler(AZStd::string::format(
|
||||
"Call to UnregisterMode for mode '%u' on id '%i' without precursor call to RegisterMode", static_cast<AZ::u32>(editorMode), viewportid).c_str());
|
||||
m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
const auto expectedErrorMsg = AZStd::string::format(
|
||||
"Call to UnregisterMode for mode '%u' on id '%i' without precursor call to RegisterMode", static_cast<AZ::u32>(editorMode), viewportid);
|
||||
const auto result = m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
|
||||
// Expect a warning to be issued due to no precursor activation of that mode
|
||||
EXPECT_EQ(errorHandler.GetExpectedWarningCount(), 1);
|
||||
// Expect an error due to no precursor activation of that mode
|
||||
EXPECT_FALSE(result.IsSuccess());
|
||||
EXPECT_EQ(result.GetError(), expectedErrorMsg);
|
||||
|
||||
// Expect that viewport to now be tracked
|
||||
const auto* viewportEditorModeState = m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid });
|
||||
@@ -338,7 +351,7 @@ namespace UnitTest
|
||||
EXPECT_EQ(m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid }), nullptr);
|
||||
}
|
||||
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, RegisteringViewportEditorModesForExistingIdInThatStateIssuesWarningMsg)
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, RegisteringViewportEditorModesForExistingIdInThatStateReturnsError)
|
||||
{
|
||||
// Given a viewport not currently tracked
|
||||
const ViewportId viewportid = 0;
|
||||
@@ -346,17 +359,12 @@ namespace UnitTest
|
||||
EXPECT_EQ(m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid }), nullptr);
|
||||
|
||||
const auto editorMode = ViewportEditorMode::Default;
|
||||
const auto expectedWarning = AZStd::string::format(
|
||||
"Duplicate call to RegisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(editorMode), viewportid);
|
||||
|
||||
{
|
||||
UnitTest::ErrorHandler errorHandler(expectedWarning.c_str());
|
||||
|
||||
// When the mode is activated for the viewport
|
||||
m_viewportEditorModeTracker.RegisterMode({ viewportid }, editorMode);
|
||||
const auto result = m_viewportEditorModeTracker.RegisterMode({ viewportid }, editorMode);
|
||||
|
||||
// Expect no warning to be issued as there is no duplicate activation
|
||||
EXPECT_EQ(errorHandler.GetExpectedWarningCount(), 0);
|
||||
// Expect no error as there is no duplicate activation
|
||||
EXPECT_TRUE(result.IsSuccess());
|
||||
|
||||
// Expect the mode to be active for the viewport
|
||||
const auto* viewportEditorModeState = m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid });
|
||||
@@ -366,11 +374,13 @@ namespace UnitTest
|
||||
}
|
||||
{
|
||||
// When the mode is activated again for the viewport
|
||||
UnitTest::ErrorHandler errorHandler(expectedWarning.c_str());
|
||||
m_viewportEditorModeTracker.RegisterMode({ viewportid }, editorMode);
|
||||
const auto result = m_viewportEditorModeTracker.RegisterMode({ viewportid }, editorMode);
|
||||
|
||||
// Expect a warning to be issued for the duplicate activation
|
||||
EXPECT_EQ(errorHandler.GetExpectedWarningCount(), 1);
|
||||
// Expect an error for the duplicate activation
|
||||
const auto expectedErrorMsg = AZStd::string::format(
|
||||
"Duplicate call to RegisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(editorMode), viewportid);
|
||||
EXPECT_FALSE(result.IsSuccess());
|
||||
EXPECT_EQ(result.GetError(), expectedErrorMsg);
|
||||
|
||||
// Expect the mode to still be active for the viewport
|
||||
const auto* viewportEditorModeState = m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid });
|
||||
@@ -380,7 +390,7 @@ namespace UnitTest
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModesForExistingIdNotInThatStateIssuesWarningMsg)
|
||||
TEST_F(ViewportEditorModeTrackerTestFixture, UnregisteringViewportEditorModesForExistingIdNotInThatStateReturnssError)
|
||||
{
|
||||
// Given a viewport not currently tracked
|
||||
const ViewportId viewportid = 0;
|
||||
@@ -388,18 +398,13 @@ namespace UnitTest
|
||||
EXPECT_EQ(m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid }), nullptr);
|
||||
|
||||
const auto editorMode = ViewportEditorMode::Default;
|
||||
const auto expectedWarning =
|
||||
AZStd::string::format("Duplicate call to UnregisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(editorMode), viewportid);
|
||||
|
||||
{
|
||||
UnitTest::ErrorHandler errorHandler(expectedWarning.c_str());
|
||||
|
||||
// When the mode is activated and then deactivated for the viewport
|
||||
m_viewportEditorModeTracker.RegisterMode({ viewportid }, editorMode);
|
||||
m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
const auto result = m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
|
||||
// Expect no warning to be issued as there is no duplicate deactivation
|
||||
EXPECT_EQ(errorHandler.GetExpectedWarningCount(), 0);
|
||||
// Expect no error as there is no duplicate deactivation
|
||||
EXPECT_TRUE(result.IsSuccess());
|
||||
|
||||
// Expect the mode to be inctive for the viewport
|
||||
const auto* viewportEditorModeState = m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid });
|
||||
@@ -408,13 +413,14 @@ namespace UnitTest
|
||||
EXPECT_FALSE(viewportEditorModeState->IsModeActive(editorMode));
|
||||
}
|
||||
{
|
||||
UnitTest::ErrorHandler errorHandler(expectedWarning.c_str());
|
||||
|
||||
// When the mode is deactivated again for the viewport
|
||||
m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
const auto result = m_viewportEditorModeTracker.UnregisterMode({ viewportid }, editorMode);
|
||||
|
||||
// Expect a warning to be issued for the duplicate deactivation
|
||||
EXPECT_EQ(errorHandler.GetExpectedWarningCount(), 1);
|
||||
// Expect an error for the duplicate deactivation
|
||||
const auto expectedErrorMsg = AZStd::string::format(
|
||||
"Duplicate call to UnregisterMode for mode '%u' on id '%i'", static_cast<AZ::u32>(editorMode), viewportid);
|
||||
EXPECT_FALSE(result.IsSuccess());
|
||||
EXPECT_EQ(result.GetError(), expectedErrorMsg);
|
||||
|
||||
// Expect the mode to still be inactive for the viewport
|
||||
const auto* viewportEditorModeState = m_viewportEditorModeTracker.GetViewportEditorModes({ viewportid });
|
||||
|
||||
Reference in New Issue
Block a user