Focus Mode | Improvements to GetFocusedEntities (#7708)

* Ensure that the system works at startup and after Clear. Ensure the invalid entityId is not added to the list.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Return a const reference to the list of entities in FocusModeInterface

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix SetFocusRoot to trigger notifications appropriately

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Optimize the entity removal via swap and pop, since we don't care about the order.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Introduce additional check to prevent possibly adding the same entity to the list twice.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix mock after API changes

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Typo.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fixed logic that needed to be updated when the code was moved.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
This commit is contained in:
Danilo Aimini
2022-02-17 14:53:01 -08:00
committed by GitHub
parent aa2ba82cea
commit 322a6c495a
5 changed files with 102 additions and 34 deletions
@@ -31,18 +31,58 @@ namespace UnitTest
EXPECT_EQ(m_focusModeInterface->GetFocusRoot(m_editorEntityContextId), AZ::EntityId());
}
TEST_F(EditorFocusModeFixture, GetFocusedEntitiesRoot)
{
AzToolsFramework::EntityIdList entities = m_focusModeInterface->GetFocusedEntities(m_editorEntityContextId);
using ::testing::UnorderedElementsAre;
EXPECT_EQ(entities.size(), 6);
EXPECT_THAT(
entities,
UnorderedElementsAre(
m_entityMap[CityEntityName],
m_entityMap[StreetEntityName],
m_entityMap[CarEntityName],
m_entityMap[Passenger1EntityName],
m_entityMap[SportsCarEntityName],
m_entityMap[Passenger2EntityName]
)
);
}
TEST_F(EditorFocusModeFixture, GetFocusedEntitiesClear)
{
m_focusModeInterface->ClearFocusRoot(m_editorEntityContextId);
AzToolsFramework::EntityIdList entities = m_focusModeInterface->GetFocusedEntities(m_editorEntityContextId);
using ::testing::UnorderedElementsAre;
EXPECT_EQ(entities.size(), 6);
EXPECT_THAT(
entities,
UnorderedElementsAre(
m_entityMap[CityEntityName], m_entityMap[StreetEntityName], m_entityMap[CarEntityName], m_entityMap[Passenger1EntityName],
m_entityMap[SportsCarEntityName], m_entityMap[Passenger2EntityName]));
}
TEST_F(EditorFocusModeFixture, GetFocusedEntitiesBase)
{
m_focusModeInterface->SetFocusRoot(m_entityMap[StreetEntityName]);
AzToolsFramework::EntityIdList entities = m_focusModeInterface->GetFocusedEntities(m_editorEntityContextId);
using ::testing::UnorderedElementsAre;
EXPECT_EQ(entities.size(), 5);
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[StreetEntityName]) != entities.end());
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[CarEntityName]) != entities.end());
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[Passenger1EntityName]) != entities.end());
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[SportsCarEntityName]) != entities.end());
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[Passenger2EntityName]) != entities.end());
EXPECT_THAT(
entities,
UnorderedElementsAre(
m_entityMap[StreetEntityName],
m_entityMap[CarEntityName],
m_entityMap[Passenger1EntityName],
m_entityMap[SportsCarEntityName],
m_entityMap[Passenger2EntityName]
)
);
}
TEST_F(EditorFocusModeFixture, GetFocusedEntitiesSiblings)
@@ -51,9 +91,9 @@ namespace UnitTest
AzToolsFramework::EntityIdList entities = m_focusModeInterface->GetFocusedEntities(m_editorEntityContextId);
using ::testing::UnorderedElementsAre;
EXPECT_EQ(entities.size(), 2);
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[SportsCarEntityName]) != entities.end());
EXPECT_TRUE(AZStd::find(entities.begin(), entities.end(), m_entityMap[Passenger2EntityName]) != entities.end());
EXPECT_THAT(entities, UnorderedElementsAre(m_entityMap[SportsCarEntityName], m_entityMap[Passenger2EntityName]));
}
TEST_F(EditorFocusModeFixture, GetFocusedEntitiesAddEntity)